题目:
分析:
太菜了,只想到了双指针,但是做不出来。
原来是分治,第一个元素个数达不到,那么结果肯定不在其中,那么直接以这个字符进行分割就ok啦!
代碼:
class Solution {
public:
int maxx=0;
int longestSubstring(string s, int k) {
if(s.length()<k) return maxx;
for(int i=0;i<s.size();i++)
{
if(count(s.begin(),s.end(),s[i])<k)
{
stringstream ss(s);
string s2;
while(getline(ss,s2,s[i]))
{
if(s2.length()<k) continue;
maxx=max(maxx,longestSubstring(s2,k));
}
return maxx;
}
}
int s_len=s.length();
return maxx=max(maxx,s_len);
}
};