列表

详情


OR83. 字符串连连看

描述

对于输入的字符串,从左到右扫描字符串,如果存在由三个以上(包括三个)连续相同字符组成的子串,就将这个子串从原串中去掉,并将原有字符串剩下的部分拼接到一起。重复上述过程,直到无法去掉任何子串

输入描述

输入的字符串

输出描述

最后剩下的子串

示例1

输入:

AAABCCDDDCB

输出:

BB

原站题解

C 解法, 执行用时: 1ms, 内存消耗: 240KB, 提交时间: 2019-03-16

#include<stdio.h>

int main()
{
    char s[100];
    int i=0;
    while(scanf("%c",&s[i])!=EOF)
    {
        if(i>=2&&s[i]==s[i-1]&&s[i]==s[i-2]) i=i-2;
        else i++;
    }
    for(int k=0;k<i;k++)
        printf("%c",s[k]);
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 224KB, 提交时间: 2019-01-30

#include<stdio.h>
int main()
{
    char str[32] = {0};
    int i =0;
    while(scanf("%c",&str[i])!=EOF)
    {
        if(i >= 2 && str[i] == str[i-1] &&str[i] == str[i -2]) i -= 2;
        else i++;
    }
    for(int k=0;k<i;k++)
    printf("%c",str[k]);
    return 0;
}

上一题