题目比较简单
思路分析:
遍历整个字符串,每次读取两个字符(第一个字符下标为index),如果第二个字符为数字则输出第一个下标字符对应次数遍,同时index+=2,反之正常输出字符后index++
值得注意的是越界问题,由于每次读取两个字符,为避免越界,我们提前在字符串后面添加一个字符‘1’
#include<iostream>
#include<string>
using namespace std;
int main()
{
int index = 0,size;
string str;
cin >> str;
str += "1";//提前处理
while (index<str.length()-1) {//注意条件
char ch1 = str[index];
char ch2 = str[index + 1];
if (ch2 >= '0' && ch2 <= '9') {
int len = ch2 - '0';
for (int i = 0; i < len; i++) {
cout << ch1;
}
index += 2;
}
else {
cout << ch1;
index++;
}
}
cout << endl;
return 0;
}