Find K-Length Substrings With No Repeated Characters
给一个String和一个整数k, 返回k长度的没有重复字符的substring.
这题就是先找所有的没有重复字符substring, 然后看长度是不是k.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
class Solution { public: int numKLenSubstrNoRepeats(string S, int K) { int res = 0; unordered_map<char, int> map; for(int i = 0; i < S.size(); i++) { if(i < K){// find all substring with non-repeacted chars map[S[i]]++; }else{ map[S[i]]++; map[S[i-K]]--; if(map[S[i-K]] == 0) map.erase(S[i-K]); } if(map.size() == K) // substring length == K res++; } return res; } }; |