一眼看上去,题目很长,其实就是去重,把相邻且相同的两个字符同时去掉,直到没有相邻且相同的字符为止
1 #include <iostream> 2 #include <cstdio> 3 #include <string> 4 #include <cstring> 5 #include <string.h> 6 using namespace std; 7 char s[200002]; 8 int main(){ 9 scanf("%s",s); 10 int len=strlen(s); 11 int j=1; 12 for(int i=1;i<len;i++){ 13 if(s[i]!=s[j-1])s[j++]=s[i]; //当前的字符与新串中的最后一个字符不一样,就复制 14 else { 15 j--;s[j]=‘\0‘; //当前的字符与新串中的最后一个字符一样把新串最后一个删除了 16 } 17 } 18 s[j]=‘\0‘; //把j后面的字符都不要了,printf("%s",s),会在遇到‘\0’,的时候结束输出 19 printf("%s\n",s); 20 }
CodeForces 81A
时间: 2024-10-16 03:07:38