482. 密钥格式化https://leetcode.cn/problems/license-key-formatting/
难度简单144
给定一个许可密钥字符串 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
通过次数49,741提交次数105,826
请问您在哪类招聘中遇到此题?
class Solution {
public String licenseKeyFormatting(String s, int k) {
String str ="";
int n=0;
int flag = 0;
for(int i=s.length()-1;i>=0;i--)
{
if(s.charAt(i)!='-')
{
if(s.charAt(i)>='a' && s.charAt(i)<='z') str+= (char)(s.charAt(i)-32);
else str+=s.charAt(i);
flag = -1;
n++;
}
if(n==k)
{
str+='-';
n = 0;
}
}
if(flag==0) return str;
if(n==0)str = str.substring(0,str.length()-1);
return new StringBuffer(str).reverse().toString();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/68972.html