题解 | #点击消除#

点击消除

https://www.nowcoder.com/practice/8d3643ec29654cf8908b5cf3a0479fd5

#include <stdio.h>
#include <string.h>
int main() {
    int a, b;
    int top = -1;
    static char chr1[300000] = { 0 };
    static char chr2[300000] = { 0 };
    while (scanf("%s", chr1) != EOF) { // 注意 while 处理多个 case
        // 64 位输出请用 printf("%lld") to 
        for(int i = 0; i < strlen(chr1); i++)
        {
            if(top == -1)
            {
                chr2[++top] = chr1[i];
            }
            else if(chr1[i] == chr2[top])
            {
                top--;
            }
            else {
                chr2[++top] = chr1[i];
            }
        }
        if ( top == -1)
        printf("0");
        else
        for (int j = 0; j <= top; j++) {
                printf("%c", chr2[j]); // 输出栈中剩余的内容
            }
    }
    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务