leetcode 884. Decoded String at Indexd题解法

题目大意是给出编码之后的字符串,求解码后的字符串的指定位置的字符.

解题思路:

(1)求解码后的字符串的长度.

(2)回推出指定位置的字符.

代码如下:

class Solution {
public:
    string decodeAtIndex(string s, int k) {
        long ds=0;
        int ss=s.size();
        for(int i=0;i<ss;i++)
        {
            ds=(isdigit(s[i]))?(ds*(s[i]-'0')):(ds+1);
        }
        for(int i=ss-1;i>=0;i--)
        {
            k%=ds; //用ds去回退到k的位置
            if(k == 0 && isalpha(s[i]))//等于0,且是字母,那么满足条件.
            {
                return string(1,s[i]);//构造字符串
            }
            if(isdigit(s[i]))
            {
                ds/=(s[i]-'0');
            }else
            {
                ds--;
            }
        }
        return "gg";
    }
};

猜你喜欢

转载自blog.csdn.net/dong_beijing/article/details/81431307