Atcoder Grand Contest 037A(贪心,思维)

#include<bits/stdc++.h>
using namespace std;
string s;
char ans[200007][7];
char anss[200007][7];
int main(){
cin>>s;
int n=s.size();
int sta=0;
int cnt=1;
int flag=0;
ans[cnt][0]=s[0];
//把字符串分割成一个字符,两个字符,一个字符,两个字符。。。
//因为前后字符数量不一样,所以肯定不相同。如果这个字符和上一个不一样,就分割成一个字符,一个字符,一个字符。。。
for(int i=1;i<n;++i){
if(s[sta]==s[i]&&flag==0){//当这个字符和前一个一样时
if(i+1<n){//如果后面还有字符,就把这两个字符放在一段
cnt++;
flag=1;
i++;
ans[cnt][0]=s[i-1];
ans[cnt][1]=s[i];
}
else if(i==1)//如果后面没有字符,就把这个字符和前一段合并,当前面没有字符时,就和上一个字符合并,此时就会少一段,例如s=aa
cnt--;
}
else if(s[sta]!=s[i]&&flag==0){
cnt++;
sta=i;
ans[cnt][0]=s[i];
}
else if(flag==1){
cnt++;
sta=i;
flag=0;
ans[cnt][0]=s[i];
}
}
cout<<cnt;
return 0;
}

保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
原文地址:https://www.cnblogs.com/ldudxy/p/11371490.html