cf C. Fixing Typos

http://codeforces.com/contest/363/problem/C

s2用于存处理之后的字符串,再遍历s1的时候,s2会有两种情况1.s2最后两个字符是相同的如xx,如果这时再遇到一个x是不行的;2最后三个字符为xxy,如果这是遇到y也是不行的。除了这两种情况,s1的字符都可以复制到s2中。

 #include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define maxn 2000010
using namespace std; char s1[maxn],s2[maxn]; int main()
{
scanf("%s",s1);
int k=strlen(s1);
if(k<=)
{
printf("%s\n",s1);
return ;
}
s2[]=s1[];
s2[]=s1[];
int cnt=;
for(int i=; i<k; i++)
{
if(s1[i]==s2[cnt-]&&s1[i]==s2[cnt-])
{
continue;
}
else if(s1[i]==s2[cnt-]&&s2[cnt-]==s2[cnt-]&&i>=)
{
continue;
}
else
{
s2[cnt++]=s1[i];
}
}
s2[cnt]='\0';
printf("%s",s2);
return ;
}
上一篇:连续解构赋值+重命名


下一篇:ElGamal