字符串简单 NC179 长度为 K 的重复字符子串

NC179 长度为 K 的重复字符子串

描述

给你一个由小写字母组成的长度为n的字符串 S ,找出所有长度为 k 且包含重复字符的子串,请你返回全部满足要求的子串的数目。

数据范围: 2 \le k \le 4002≤k≤400 ,5\le n \le 9005≤n≤900
进阶: 时间复杂度O(n)O(n),空间复杂度O(n)O(n)

分析

一边遍历一遍加入map会更好

import java.util.*;
public class Solution {
    
    
    public int numKLenSubstrRepeats (String s, int k) {
    
    
        int i = 0, j = k;
        int count = 0;
        while(j <= s.length()){
    
    
            String str = s.substring(i,j);
            if(judge(str)){
    
    
                count++;
            }
            i++;
            j++;
        }
        return count;
    }

    public boolean judge(String s){
    
    
        Map<Character, Integer> map = new HashMap<>();
        for(int i = 0; i < s.length();i++){
    
    
            if(map.containsKey(s.charAt(i))){
    
    
                return true;
            }
            map.put(s.charAt(i),0);
        }
        return false;
    }
}

Guess you like

Origin blog.csdn.net/weixin_43260719/article/details/121478414