字符串解码(递归)

题目链接:https://leetcode.cn/problems/decode-string/

题意:

嵌套递归

class Solution {
  
public:
    int where;
    string repeat(string path,int cnt)
    {
        string ans="";
        for(int i=1;i<=cnt;i++)
        {
            ans+=path;
        }
        return ans;
    }
    string decodeString(string s) {
        where=0;
        return f(s,0);
    }
    string f(string s,int i)
    {
        string path="";
        int cnt=0;
        while(i<s.size()&&s[i]!=']')
        {
            if(isalpha(s[i]))path+=s[i++];
            else if(isdigit(s[i]))cnt=cnt*10+(s[i++]-'0');
            else 
            {
                path+=repeat(f(s,i+1),cnt);
                i=where+1;
                cnt=0;
            }
        }
        where=i;
        return path;
    }
};
posted @ 2025-01-11 15:18  Marinaco  阅读(16)  评论(0)    收藏  举报
//雪花飘落效果