LeetCode 482. 密钥格式化
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. 密钥格式化相关推荐
- leetcode 482. 密钥格式化(Java版)
题目 https://leetcode-cn.com/problems/license-key-formatting/ 题解 题目本身不难,会有一些边界条件造成的小坑. public class So ...
- 482. 密钥格式化
482. 密钥格式化 有一个密钥字符串 S ,只包含字母,数字以及 '-'(破折号).其中, N 个 '-' 将字符串分成了 N+1 组. 给你一个数字 K,请你重新格式化字符串,使每个分组恰好包含 ...
- LeetCode简单题之密钥格式化
题目 有一个密钥字符串 S ,只包含字母,数字以及 '-'(破折号).其中, N 个 '-' 将字符串分成了 N+1 组. 给你一个数字 K,请你重新格式化字符串,使每个分组恰好包含 K 个字符.特别 ...
- [Swift]LeetCode482. 密钥格式化 | License Key Formatting
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- LeetCode 1694. 重新格式化电话号码(模拟)
文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串形式的电话号码 number . number 由数字.空格 ' '.和破折号 '-' 组成. 请你按下述方式重新格式化电话号码. 首先,删 ...
- LeetCode 1417. 重新格式化字符串
1. 题目 给你一个混合了数字和字母的字符串 s,其中的字母均为小写英文字母. 请你将该字符串重新格式化,使得任意两个相邻字符的类型都不同. 也就是说,字母后面应该跟着数字,而数字后面应该跟着字母. ...
- LeetCode题解目录
最新更新于2020.11.27 前往LeetCode主页. 前往GitHub源码.(服务器原因,暂停同步.) 前往码云主页. 已解决 456/1878 - 简单353 中等 90 困难 13 2020 ...
- leetcode算法练习 JavaScript实现
leetcode 表格内容由spider.js从leetcode-cn.com爬取. 已做题目答案也从leetcode-cn.com中爬取并生成文件. 解题进度:已解决 140/637 - 简单 94 ...
- LeetCode中的那些题
目录 1. 两数之和 2. 两数相加 3. 无重复字符的最长子串 *******4.寻找两个有序数组的中位数(官方解答) : 5.最长回文子串(官方解答) 15. 三数之和 16. 最接近的三数之和 ...
最新文章
- 【golang程序包推荐分享】分享亿点点golang json操作及myJsonMarshal程序包开发的踩坑经历 :)
- 3 用python进行OpenCV实战之画图(直线,矩形,圆形)
- 科大星云诗社动态20220102
- 数据科学自动化_数据科学会自动化吗?
- jQuery常用方法
- c#导出Excel及操作
- leetcode数组相关
- 深入理解 JVM 之 垃圾回收机制
- h5离线缓存+sessionstroage做 离线网页
- 一个泛型句柄类--C++模板和泛型编程--c++ primer
- c语言论坛编程,[原创]了解c语言
- shiro 记住我 的实现
- 重写规则(Rewrite Rules)在IIS和Linux服务器的配置区别
- 紧凑型游戏机械键盘——极度未知HyperX起源60水轴游戏机械键盘
- 惠普服务器开机显示系统恢复选项,惠普一键恢复出厂设置【操作办法】
- platform详解
- CASS10.1任意断面(渠道断面)土方计算
- 一个业务型算法工程师的技能清单
- 4 分钟,快速了解声网 Agora SDK 3.0
- 初学stm32建议的---实用开发板推荐