Leetcode-密钥格式化C++实现

给定一个许可密钥字符串 s,仅由字母、数字字符和破折号组成。字符串由 n 个破折号分成 n + 1 组。你也会得到一个整数 k 。

我们想要重新格式化字符串 s,使每一组包含 k 个字符,除了第一组,它可以比 k 短,但仍然必须包含至少一个字符。此外,两组之间必须插入破折号,并且应该将所有小写字母转换为大写字母。

返回 重新格式化的许可密钥 。

class Solution {
public:
    string licenseKeyFormatting(string s, int k) {
        s.erase(remove(s.begin(), s.end(), '-'), s.end());
        for(int i = 0 ; i < s.size();i++)
        {
            if(s[i] >= 'a'&&s[i] <= 'z')
                s[i] -=32;
        }
        reverse(s.begin(),s.end());
        for(int i = k ; i < s.size();i=i+k+1)
        {
            s.insert(i,"-");
        }
        reverse(s.begin(),s.end());
        return s;
    }
};

 思路:

有点笨,可能消耗比较大,先删除,再反转,再插入,再反转

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值