题目描述
题目描述和样例都懒得写了, 自己找吧
思想
通过耗费空间, 来达到理解比较简单的目的
创建一个新的vector数组, 用来存放连续字符的个数
然后直接遍历找到最大的就行了
废话不多说, 上代码
代码
# include <iostream>
# include <vector>
using namespace std;
int main (){
int t;
cin>>t;
while (t--){
string s;
cin>>s;
vector <int>len(s.size()+1,1);//创建新的数组用来保存字符连续长度
//len[i]代表在s[i]之前有多少个字符和s[i]是相同的.
//例如输入: aabbccc, 则len={1,2,1,2,1,2,3}
//直接找到最大值, 然后输出就可以了
char ch=s[0];//答案肯定是从第一个字符开始
int ans=len[0];
for (int i=1;i<s.size();i++){
if (s[i]==s[i-1]) len[i]+=len[i-1];
if (len[i]>ans){//更新答案
ch=s[i];
ans=len[i];
}
}
cout<<ch<<' '<<ans<<endl;
}
}