河南省漯河建设局网站,做网站在线支付系统多少钱,中国芯片三巨头,史丹利网站开发团队1. 题目
给定一个密钥字符串S#xff0c;只包含字母#xff0c;数字以及 ‘-’#xff08;破折号#xff09;。N 个 ‘-’ 将字符串分成了 N1 组。给定一个数字 K#xff0c;重新格式化字符串#xff0c;除了第一个分组以外#xff0c;每个分组要包含 K 个字符#xf…1. 题目
给定一个密钥字符串S只包含字母数字以及 ‘-’破折号。N 个 ‘-’ 将字符串分成了 N1 组。给定一个数字 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,000K 为正整数 S 只包含字母数字a-zA-Z0-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阿明一起加油、一起学习进步