题解 | #牛牛的字符串解码问题#
牛牛的字符串解码问题
https://www.nowcoder.com/practice/e5658311e6d44b74872e843ba13ee290
#include <regex>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return string字符串
*/
string decode_string(string& str, int& index) {
if (str.empty()) return "";
string substr;
while(index < str.size())
{
string nums;
if (str[index] >= '0' && str[index] <= '9') {
nums += str[index];
while (str[index + 1] >= '0' && str[index + 1] <= '9') {
++index;
nums += str[index];
}
// point to 3, 递归
index += 2;
string strinter = decode_string(str, index);
//
int num = 0;
for (int j = 0; j < nums.size(); ++j) {
num += (int)(nums[j] - '0') * pow(10, j);
}
while (num != 0) {
substr.append(strinter);
--num;
}
}
else if(str[index] == ']')
{
++index;
return substr;
}
else
{
substr += str[index];
++index;
}
}
return substr;
}
string decodeString(string s) {
int index = 0;
return decode_string(s, index);
}
};
阿里云工作强度 727人发布