一个只由字母数字字符和破折号组成的字符串S. 该字符串被N个破折号分成N + 1个组。 给定数字K,使得每个组包含完全K个字符,除了第一个组可能少于K

本题源自leetcode  482

-----------------------------------------------------

思路:从后向前遍历字符串。如果结果字符串的长度 余 K+1 等于 K,则下一个字符是 - 。

2 反转结果字符串

代码:

 string licenseKeyFormatting(string S, int K) {
        string res;
        for(auto i = S.rbegin(); i < S.rend(); i++){
            if(*i != '-'){
                if(res.size() % (K + 1) == K)
                    res += '-';
                res += toupper(*i);
            }
        }
        reverse(res.begin(),res.end());
        return res;
    }


你可能感兴趣的:(C++,leetcode,算法)