相邻相同字母删除

题目描述

小南现在有一段由小写字母组成的文本s,他每天的工作就是找到文本中两个相邻并且相同的字母,然后删除它们。注意这个删除过程可能是重复的,比如:
"abbac"->"aac"->"c"。 也就是说最终的文本中没有相邻相同的字母。

输入

单样例。每个测试文件只有一个样例输入,输入的一行文本的长度len满足1≤len≤105。

输出

输出一行,代表处理后的文本。

样例输入 Copy

abbbac

样例输出 Copy

abac
 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 #define MaxSize 100000
 5 
 6 int main(){
 7     char s[MaxSize];
 8     scanf("%s",&s);
 9     int len = strlen(s);
10     int sum = 0;
11     int sum2 = 0;
12     while (1){
13         int i=1;
14         for (i=1;i<len;++i){
15             if(s[i-1]!=s[i]){
16                 s[sum++]=s[i-1];
17             }else{
18                 i++;
19             }
20         }
21         if (i==len){
22             s[sum++]=s[i-1];
23         }
24         if (sum==len||sum==sum2||sum==1){
25             break;
26         } else {
27             sum2=sum;
28             len=sum;
29             sum=0;
30         }
31     }
32     len=sum;
33     for (int i = 0; i < len; ++i){
34         printf("%c",s[i]);
35     }
36     printf("\n");
37     return 0;
38 }

 

posted on 2022-12-22 14:09  messing  阅读(123)  评论(0)    收藏  举报

导航