字符串还原:从重复字符恢复原始字符串
字符串还原:从重复字符恢复原始字符串
问题描述:
假设你有一个字符串,你将第 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;
}
代码解释:
- 输入: 读取字符串长度
n和修改后的字符串str。 - 初始化: 创建一个空的字符串
original来存储原始字符串。初始化当前字符currChar为str的第一个字符,并设置计数器count为 1。 - 遍历字符串: 从
str的第二个字符开始遍历,直到最后一个字符。 - 判断重复: 如果当前字符与
currChar相同,则count加 1。 - 添加字符: 如果当前字符与
currChar不同,则将currChar添加到original中,更新currChar为当前字符,并将count重置为 1。 - 输出: 遍历完成后,将
currChar添加到original中,并输出original。
总结: 这段代码通过遍历修改后的字符串,并根据字符重复次数还原原始字符串。它利用计数器来记录每个字符重复的次数,当遇到新的字符时,就将之前的字符添加到结果字符串中。
原文地址: https://www.cveoy.top/t/topic/phYA 著作权归作者所有。请勿转载和采集!