题解 | #固定字符出现最大次数#

固定字符出现最大次数

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;
}
#固定字符出现最大次数#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务