您的位置:首页 > 编程语言 > C语言/C++

395. Longest Substring with At Least K Repeating Characters

2016-09-05 18:11 543 查看


#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
class Solution {
public:
int longestSubstring(string s, int k)
{
if(k==1)
return s.length();
int count,temp,i,j,m,max=0;
for(i=1;i<s.length();i++)
{
if(s[i]!=s[i-1])
break;
}
if(i==s.length())
return s.length()>k?s.length():0;
for(i=0;i<s.length();i++)
{
for(j=i+k-1;j<s.length();j++)
{
count=0;
temp=1;
string l (s,i,j-i+1);
sort(l.begin(),l.end());
for(m=1;m<l.length();m++)
{
if(l[m]==l[m-1])
temp++;
else
{
if(temp>=k)
{
count+=temp;
temp=1;
}
else
{
count=0;
break;
}
}
}
if(temp>=k)
count+=temp;
else
count=0;
if(count>max)
max=count;
}
if(max>=j-i+1)
break;
}
return max;
}
};
int main()
{
string s;
cin>>s;
int k;
cin>>k;
Solution solve;
cout<<solve.longestSubstring(s,k)<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C-C++