首页 > 其他分享 >替换后的最长重复字符 找到字符串中所有字母异位词 无重复字符的最长子串

替换后的最长重复字符 找到字符串中所有字母异位词 无重复字符的最长子串

时间:2022-11-27 00:11:58浏览次数:42  
标签:字符 right 重复 max int ans 最长 left

424. 替换后的最长重复字符

滑动窗口
记录下当前窗口出现最多的元素的数量,其他的元素在有限次数下能否变成它
int n = s.length();
if(n < 2) {
return n;
}
char[] sArray = s.toCharArray();
int left = 0, right = 0;
int ans = 0;
int max = 0;
int[] cur = new int[26];
while(right < n) {
cur[sArray[right] - 'A']++;右边界扩大
max = Math.max(max, cur[sArray[right] - 'A']);记录出现最多次数的元素的个数
right++;
if((right - left) > (max + k)) {如果当前窗口的长度,大于能得到的相同字串,则抛弃,左边界收缩
cur[sArray[left] - 'A']--;
left++;
}
ans = Math.max(ans, right - left);
}
return ans;


438. 找到字符串中所有字母异位词

由题意可得,我的窗口长度时固定的
只需要看每个窗口是否符合即可


3. 无重复字符的最长子串

答案就在相邻的两个相同字符之间
Map<Character, Integer> map = new HashMap<>();
int ans = 0;
int left = 0;
for(int i = 0; i < s.length(); i++) {
if(map.containsKey(s.charAt(i))) {
left = Math.max(left, map.get(s.charAt(i)) + 1);此处采用左边界右移一格,达到左闭右闭[left, right]。是为了避免此种情况
}
map.put(s.charAt(i), i);
ans = Math.max(ans, i - left + 1);
}
return ans;

标签:字符,right,重复,max,int,ans,最长,left
From: https://www.cnblogs.com/xtag/p/16928684.html

相关文章

  • mongo踩坑-upsert插入重复数据
    在线上环境碰到一张mongo表里有重复数据,最终追溯到了nodemongo插入数据那里,发现了mongo的upsert并非是线程安全的,在并发的情况下会产生重复数据。后面查阅monog......
  • #yyds干货盘点# LeetCode 腾讯精选练习 50 题:反转字符串中的单词 III
    题目:给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例1:输入:s="Let'stakeLeetCodecontest"输出:"s'teLekatedoCteeL......
  • 字符串
    字符串的介绍Python支持使用单引号、双引号和三引号定义字符串,其中单引号和双引号通常用于定义单行字符串,三引号通常用于定义多行字符串。字符串的索引和切片字符串的索引字......
  • Integer转换为日期字符串的方法分享
    转自:​​http://www.java265.com/JavaJingYan/202205/16530565423432.html​​时间是每一个系统开发中必不可少的一部分,那么时间在数据库中的存储也是大有讲究的,如何合理的......
  • 最长回文串
    最长回文串一、题目描述给定一个包含大写字母和小写的字符串s,返回通过这些字母构成的最长的回文串。在构造过程中,请注意区分大小写。示例1输入:s="abccccdd"输出:7......
  • 【776】shapely通过文本字符串构建矢量(wkt)
    参考:TheShapelyUserManualwkt:wellknowntext矢量对象通过wkt可以生成文本通过文本可以直接构建矢量对象>>>fromshapelyimportwkt>>>fromshapely.geomet......
  • [golang]字符串拼接
    前言在go语言中,因为字符串只能被访问,不能被修改,所以进行字符串拼接的时候,golang都需要进行内存拷贝,造成一定的性能消耗。方式1:操作符+特点:简单,可读性良好。每次拼接都......
  • C++的字符串流
    sstream使用,注意clear和str("")#include<iostream>#include<sstream>#include<string>usingnamespacestd;intmain(){stringstreamss;ss.put......
  • NEFU锐格作业一[数组-字符串]
    ​​推荐:NEFU大一下C语言锐格实验与作业参考程序目录​​文章目录​​NEFU锐格作业一[数组-字符串]​​​​知识点​​​​题目​​​​7132​​​​7124​​​​7150​​​......
  • [DP 字符串 计数去重]L3-020 至多删三个字符
    [DP字符串]L3-020至多删三个字符题目思路状态表示集合属性:count(不包含重复)状态计算:删除第i个或者不删除第i个这题比较恶心的地方在于去重aacdbb删掉最后一个b和删除......