字符串还原:从重复字符恢复原始字符串

问题描述:

假设你有一个字符串,你将第 i 个字符重复 i 次。例如,字符串 'abc' 将变成 'abbccc'。现在你忘记了原始字符串,只知道修改后的字符串,请编写程序还原原始字符串。

输入:

  • 第一行输入一个整数 n (1≤n≤100),表示这个字符串的长度。
  • 第二行输入小新改变后的字符串。

输出:

  • 输出小新原来得到的字符串。

样例输入:

6
baabbb

样例输出:

bab

C++ 代码:

#include <iostream>
#include <string>

int main() {
    int n;
    std::string str;
    std::cin >> n >> str;

    std::string original;
    char currChar = str[0];
    int count = 1;

    for (int i = 1; i < n; i++) {
        if (str[i] == currChar) {
            count++;
        } else {
            original += currChar;
            currChar = str[i];
            count = 1;
        }
    }
    original += currChar;

    std::cout << original << std::endl;

    return 0;
}

代码解释:

  1. 输入: 读取字符串长度 n 和修改后的字符串 str
  2. 初始化: 创建一个空的字符串 original 来存储原始字符串。初始化当前字符 currCharstr 的第一个字符,并设置计数器 count 为 1。
  3. 遍历字符串:str 的第二个字符开始遍历,直到最后一个字符。
  4. 判断重复: 如果当前字符与 currChar 相同,则 count 加 1。
  5. 添加字符: 如果当前字符与 currChar 不同,则将 currChar 添加到 original 中,更新 currChar 为当前字符,并将 count 重置为 1。
  6. 输出: 遍历完成后,将 currChar 添加到 original 中,并输出 original

总结: 这段代码通过遍历修改后的字符串,并根据字符重复次数还原原始字符串。它利用计数器来记录每个字符重复的次数,当遇到新的字符时,就将之前的字符添加到结果字符串中。

字符串还原:从重复字符恢复原始字符串

原文地址: https://www.cveoy.top/t/topic/phYA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录