题解 | #固定字符出现最大次数#
固定字符出现最大次数
https://www.nowcoder.com/practice/73cc3e22a6ea4d00846f53384e4a6915
所用语言
Java
所用知识
字符串、哈希表
解题思路
因为t中可能有多个编号,所以使用hashmap存储,使用containKey进行匹配; 使用滑动窗口,记录当前窗口中符合标准的数量; 再用Math.max记录最大值返回即可
完整代码
public int maxCount (String s, int k, String t) {
// write code here
HashMap<Character, Integer> hashMap = new HashMap<>();
for (int i = 0; i < t.length(); i++) {
hashMap.put(t.charAt(i), 0);
}
int cur = 0, max = 0;
for (int i = 0; i < k; i++) {
if (hashMap.containsKey(s.charAt(i))) {
cur += 1;
max =cur;
}
}
for (int i = k; i < s.length(); i++) {
if (hashMap.containsKey(s.charAt(i - k))) {
cur = cur - 1;
}
if (hashMap.containsKey(s.charAt(i))) {
cur = cur + 1;
max = Math.max(cur, max);
}
}
return max;
}
#固定字符出现最大次数#