码迷,mamicode.com
首页 > 其他好文 > 详细

去除字符串中的连续相同元素

时间:2018-04-11 21:50:08      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:bbb   字符串   ++   display   一个   problem   长度   data   isp   

                                                 食堂排队

                     发布时间: 2018年4月9日 15:09   最后更新: 2018年4月9日 17:54   时间限制: 1000ms   内存限制: 128M

某日,食堂窗口推出一款新美食,每个班的同学都想去尝一尝。于是,很多人都去这个窗口排队,但是,队伍中如果同班同学相邻站着的话,他们就只需要一个人排在队伍中就行了。例如某次队伍情况:12221133345678899,那么就会变成一条新的队伍:1213456789。

输入有多组数据,对于每组数据只有一行长度不超过100的字符串。(该字符串只包含数字和字母)

输出新串。

12221133345678899
aabbbbbbbccccddeeeeffgg
1213456789
abcdefg


字符串的水题还是不太熟练啊。
像这种简单题要尽量做到秒杀。

我的代码:
技术分享图片
#include <cstdio>
#include <cstring>

int main()
{
    char a[101]; 
    while (scanf("%s", a) != EOF)
    {
        char b[101];
        int i, j;
        int len = strlen(a); int cur = 0;
        for (i = 0; i < len;)
        {
            j = i + 1;
            b[cur++] = a[i];
            while (a[j] == a[j - 1])
            {
                j++;
            }
            i = j;
        }
        for (i = 0; i < cur; i++)printf("%c", b[i]);
        printf("\n");
    }
    return 0;
}
View Code

 

精简代码:

 

技术分享图片
#include<cstdio>
#include<cstring>
int main()
{
    //freopen("data.in","r",stdin);
    char s[110];
    while(scanf("%s",s)!=EOF)//多组输入格式
    {
        printf("%c",s[0]);
        for(int i=1;i<strlen(s);i++)
        {
            if(s[i]==s[i-1])
                continue;
            printf("%c",s[i]);
        }
        printf("\n");
    }
    return 0;
}
View Code

 



2018-04-11

去除字符串中的连续相同元素

标签:bbb   字符串   ++   display   一个   problem   长度   data   isp   

原文地址:https://www.cnblogs.com/00isok/p/8798358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!