给定一个密钥字符串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 非空

java版

class Solution {
public String licenseKeyFormatting(String S, int K) {
S = S.replaceAll("-", "").toUpperCase();
int len = S.length();
if(len ==0 ) {
return "";
}
int remain =len % K;
int times = len / K;
StringBuilder sb = new StringBuilder();
if(remain != 0) {
sb.append(S.substring(0, remain)+"-");
}
while(times>0) {
sb.append(S.substring(len-times*K, len-times*K+K)+"-");
times--;
}
return sb.toString().substring(0, sb.toString().length()-1); }
}

运行结果

最新文章

  1. 用pyspider爬淘宝MM照片
  2. [转]17个新手常见Python运行时错误
  3. 详解mysql int类型的长度值问题【转】
  4. jQuery插件之simplemodal
  5. css解决select下拉表单option高度的办法
  6. ASP.NET 操作Cookie详解 增加,修改,删除
  7. 【ajax】xhr
  8. 旨在脱离后端环境的前端开发套件 - IDT Server篇
  9. (六) 6.3 Neurons Networks Gradient Checking
  10. android应用activity中调出输入法后界面调整问题的解决
  11. 在Linux上进行QT UI开发
  12. 1 Yoga3 系统装机总结.
  13. CCI_chapter 8 Recurision
  14. 【ASP.NET Web API教程】5.2 发送HTML表单数据:URL编码的表单数据
  15. CSS预编译与PostCSS以及Webpack构建CSS综合方案
  16. Java笔记Spring(七)
  17. uni-app 使用 iconfont
  18. Django1.0和2.0中的rest_framework的序列化组件之超链接字段的处理
  19. SpringBoot(十二)-- 整合Redis
  20. python 将列表中的字符串转为数字

热门文章

  1. 东大oj1155 等凹函数
  2. CLOSE_WAIT状态的原因与解决方法(转载留自己看)
  3. [qemu] 差分盘使用
  4. Win7-IE11 For x86&x64离线安装包
  5. Java连接MySQL报出警告 WARN: Establishing SSL connection without server's identity verification is not recommended.
  6. 如何在一个电脑上使用两个github账号
  7. mysql 目录
  8. javaweb(4)之Listener&Filter
  9. 微信小程序 条件渲染 wx:if
  10. HBase 笔记3