0
点赞
收藏
分享

微信扫一扫

7-24 h0076. 寻找变化前的01序列 (15 分)

灯火南山 2022-04-19 阅读 20
c++

给你一个 01 序列,如果出现连续的 3 个 1 会补 1 个 0。

例如 1111110,会变成 111011100。

现在给你一个经过处理后的 01 序列,你需要找到处理之前的 01 序列。

例如给你 111011100,你需要输出 1111110。

输入格式:

第一行一个整数 N,表示共有 N 组测试数据(1≤N≤100 )。

每组数据占一行,包含一个 01 序列(01 序列长度不超过 100)。

输出格式:

每组数据输出一行结果,为处理之前的 01 序列。

输入样例:

2
1110111010
11101100

输出样例:

11111110
1111100

代码如下:

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin >> n;
    string s;
    for (int i = 0; i < n; i++)
    {
        cin >> s;
        int len = s.length();
        int cnt = 0;
        for (int j = 0; j < len; j++)
        {
            if (s[j] == '1')
            {
                cnt++;
                if (cnt == 3)
                {
                    s.erase(j+1, 1);
                    cnt = 0;
                }
            }
            else
                cnt = 0;
        }
        cout << s << endl;
    }
    return 0;

举报

相关推荐

0 条评论