Problem: 482. 密钥格式化

Solution题过程

保存大写后的字母,然后计算余数,开始字符串拼入,后面的指针后移即可,判断个数就行了

复杂度

  • 时间复杂度: O ( n ) O(n) O(n)
  • 空间复杂度: O ( n ) O(n) O(n)

Code

class Solution {
public:
    string licenseKeyFormatting(string s, int k) {
        vector<char> tr;
        for(auto c : s) {
            if( c != '-' ) {
                if(isdigit(c)) {
                    tr.push_back(c);
                } else {
                    tr.push_back(toupper(c));
                }
            }
        }
        int remain = tr.size() % k, l = 0, sum = 0;
        string ret;
        while(l < remain) {
            ret += tr[l++];
        }
        if( l > 0) {
            ret += '-';
        }
        while(l < tr.size()) {
            ret += tr[l++];
            sum++;
            if(sum % k == 0) {
                ret += '-';
            }
        }
        if(ret.size() > 0 && ret.back() == '-') {
            ret.pop_back();
        }
        return ret;
    }
};
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐