本文主要是介绍C++ | Leetcode C++题解之第394题字符串解码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
题解:
class Solution {
public:string src; size_t ptr;int getDigits() {int ret = 0;while (ptr < src.size() && isdigit(src[ptr])) {ret = ret * 10 + src[ptr++] - '0';}return ret;}string getString() {if (ptr == src.size() || src[ptr] == ']') {// String -> EPSreturn "";}char cur = src[ptr]; int repTime = 1;string ret;if (isdigit(cur)) {// String -> Digits [ String ] String// 解析 DigitsrepTime = getDigits(); // 过滤左括号++ptr;// 解析 Stringstring str = getString(); // 过滤右括号++ptr;// 构造字符串while (repTime--) ret += str; } else if (isalpha(cur)) {// String -> Char String// 解析 Charret = string(1, src[ptr++]);}return ret + getString();}string decodeString(string s) {src = s;ptr = 0;return getString();}
};
这篇关于C++ | Leetcode C++题解之第394题字符串解码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!