Leetcode 482. 密钥格式化

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

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

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

示例 1:

输入:S = "5F3Z-2e-9-w", k = 4

输出:"5F3Z-2E9W"

解释:字符串 S 被分成了两个部分,每部分 4 个字符;

注意,两个额外的破折号需要删掉。

示例 2:

输入:S = "2-5g-3-J", k = 2

输出:"2-5G-3J"

解释:字符串 S 被分成了 3 个部分,按照前面的规则描述,第一部分的字符可以少于给定的数量,其余部分皆为 2 个字符。

提示:

1 <= s.length <= 105

s 只包含字母、数字和破折号 '-'.

1 <= k <= 104

cpp 复制代码
class Solution {
public:
    string licenseKeyFormatting(string s, int k) {
        string ss;
        for(auto c : s) {
            if(c != '-') ss += c;
        }
        string res;
        for(int i = 0; i < ss.size() % k; i ++ ) res += toupper(ss[i]);
        for(int i = ss.size() % k; i < ss.size(); ) {
            if(res.size()) res += '-';
            for(int j = 0; j < k; j ++ ) {
                res += toupper(ss[i ++ ]); 
            }
        }
        return res;
    }
};
相关推荐
Liangwei Lin5 小时前
LeetCode 118. 杨辉三角
算法·leetcode·职场和发展
YL200404267 小时前
047从前序与中序遍历序列构造二叉树
算法·leetcode
如竟没有火炬10 小时前
字符串相乘——int数组转字符串
开发语言·数据结构·python·算法·leetcode·深度优先
YL2004042613 小时前
046二叉树展开为链表
数据结构·leetcode·链表
如竟没有火炬15 小时前
至少有K个重复字符的最长子串
开发语言·数据结构·python·算法·leetcode·动态规划
水蓝烟雨16 小时前
2359. 找到离给定两个节点最近的节点
算法·leetcode
阿Y加油吧16 小时前
二刷动态规划经典题:从打家劫舍到完全平方数,Java 实现复盘与优化
leetcode
阿Y加油吧16 小时前
二刷 LeetCode:爬楼梯与杨辉三角,Java 实现复盘
java·算法·leetcode
凌波粒16 小时前
LeetCode--101. 对称二叉树(二叉树)
算法·leetcode·职场和发展
_深海凉_16 小时前
LeetCode热题100-二叉树的最大深度
算法·leetcode·职场和发展