题解 | #牛牛的字符串解码问题#
牛牛的字符串解码问题
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); } };