1. 题目

给定一个密钥字符串S,只包含字母,数字以及 ‘-’(破折号)。N 个 ‘-’ 将字符串分成了 N+1 组。给定一个数字 K,重新格式化字符串,除了第一个分组以外,每个分组要包含 K 个字符,第一个分组至少要包含 1 个字符。两个分组之间用 ‘-’(破折号)隔开,并且将所有的小写字母转换为大写字母。

给定非空字符串 S 和数字 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 个字符。

提示:
S 的长度不超过 12,000,K 为正整数
S 只包含字母数字(a-z,A-Z,0-9)以及破折号’-’
S 非空

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/license-key-formatting
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 对原字符串逆序处理即可
  • 注意最后一个-在末端,删除之
class Solution {public:string licenseKeyFormatting(string S, int K) {string ans;int count = 0;for(int i = S.size()-1; i >= 0; i--){if(S[i] == '-')continue;if(isdigit(S[i]) || isupper(S[i]))ans.push_back(S[i]);elseans.push_back(toupper(S[i]));count++;if(count == K){ans.push_back('-');count = 0;}}if(!ans.empty() && ans[ans.size()-1] == '-')ans.pop_back();// "--a-a-a-a--" , 2// "---" , 3reverse(ans.begin(), ans.end());return ans;}
};


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 482. 密钥格式化相关推荐

  1. leetcode 482. 密钥格式化(Java版)

    题目 https://leetcode-cn.com/problems/license-key-formatting/ 题解 题目本身不难,会有一些边界条件造成的小坑. public class So ...

  2. 482. 密钥格式化

    482. 密钥格式化 有一个密钥字符串 S ,只包含字母,数字以及 '-'(破折号).其中, N 个 '-' 将字符串分成了 N+1 组. 给你一个数字 K,请你重新格式化字符串,使每个分组恰好包含 ...

  3. LeetCode简单题之密钥格式化

    题目 有一个密钥字符串 S ,只包含字母,数字以及 '-'(破折号).其中, N 个 '-' 将字符串分成了 N+1 组. 给你一个数字 K,请你重新格式化字符串,使每个分组恰好包含 K 个字符.特别 ...

  4. [Swift]LeetCode482. 密钥格式化 | License Key Formatting

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  5. LeetCode 1694. 重新格式化电话号码(模拟)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串形式的电话号码 number . number 由数字.空格 ' '.和破折号 '-' 组成. 请你按下述方式重新格式化电话号码. 首先,删 ...

  6. LeetCode 1417. 重新格式化字符串

    1. 题目 给你一个混合了数字和字母的字符串 s,其中的字母均为小写英文字母. 请你将该字符串重新格式化,使得任意两个相邻字符的类型都不同. 也就是说,字母后面应该跟着数字,而数字后面应该跟着字母. ...

  7. LeetCode题解目录

    最新更新于2020.11.27 前往LeetCode主页. 前往GitHub源码.(服务器原因,暂停同步.) 前往码云主页. 已解决 456/1878 - 简单353 中等 90 困难 13 2020 ...

  8. leetcode算法练习 JavaScript实现

    leetcode 表格内容由spider.js从leetcode-cn.com爬取. 已做题目答案也从leetcode-cn.com中爬取并生成文件. 解题进度:已解决 140/637 - 简单 94 ...

  9. LeetCode中的那些题

    目录 1. 两数之和 2. 两数相加 3. 无重复字符的最长子串 *******4.寻找两个有序数组的中位数(官方解答) : 5.最长回文子串(官方解答) 15. 三数之和 16. 最接近的三数之和 ...

最新文章

  1. 【golang程序包推荐分享】分享亿点点golang json操作及myJsonMarshal程序包开发的踩坑经历 :)
  2. 3 用python进行OpenCV实战之画图(直线,矩形,圆形)
  3. 科大星云诗社动态20220102
  4. 数据科学自动化_数据科学会自动化吗?
  5. jQuery常用方法
  6. c#导出Excel及操作
  7. leetcode数组相关
  8. 深入理解 JVM 之 垃圾回收机制
  9. h5离线缓存+sessionstroage做 离线网页
  10. 一个泛型句柄类--C++模板和泛型编程--c++ primer
  11. c语言论坛编程,[原创]了解c语言
  12. shiro 记住我 的实现
  13. 重写规则(Rewrite Rules)在IIS和Linux服务器的配置区别
  14. 紧凑型游戏机械键盘——极度未知HyperX起源60水轴游戏机械键盘
  15. 惠普服务器开机显示系统恢复选项,惠普一键恢复出厂设置【操作办法】
  16. platform详解
  17. CASS10.1任意断面(渠道断面)土方计算
  18. 一个业务型算法工程师的技能清单
  19. 4 分钟,快速了解声网 Agora SDK 3.0
  20. 初学stm32建议的---实用开发板推荐

热门文章

  1. LeetCode371——Sum of Two Integers(不用+)
  2. jitter 如何优化网络_网络推广如何做好网站SEO优化
  3. UVA 213 Message Decoding
  4. 前端需要了解的http知识
  5. NVLink技术及影响解析
  6. 【Mysql】之视图操作
  7. 自学python前戏
  8. [BZOJ 2500] 幸福的道路
  9. 移动硬盘无法弹出的问题
  10. 浅谈“三层结构”原理与用意(转帖)