博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
482. License Key Formatting - LeetCode
阅读量:7057 次
发布时间:2019-06-28

本文共 1270 字,大约阅读时间需要 4 分钟。

  hot3.png

Question

Solution

思路:字符串转化为char数组,从后遍历,如果是大写字母就转化为小写字母,如果是-就忽略,如果遍历了k个字符(排除-)就追加一个-

Java实现1:insert版(StringBuilder的append()与insert()效率比较)

public String licenseKeyFormatting(String S, int K) {    StringBuilder sb = new StringBuilder();    char[] arr = S.toCharArray();    int count = 0;    for (int i = arr.length - 1; i >= 0; i--) {        char c = arr[i];        if (c == '-') continue;        if (count % K == 0) sb.insert(0, '-');        if (c >= 'a' && c <= 'z') c -= 32;        sb.insert(0, c);        count++;    }    // return sb.substring(0, sb.length() - 1); // "---" 不通过    return sb.length() > 0 ? sb.substring(0, sb.length() - 1) : "";}

Java实现2:append版

public String licenseKeyFormatting(String S, int K) {    StringBuilder sb = new StringBuilder();    // char[] arr = S.toCharArray();    int count = 0;    for (int i = S.length() - 1; i >= 0; i--) {        char c = S.charAt(i);        if (c == '-') continue;        if (count % K == 0) sb.append('-');//sb.insert(0, '-');        if (c >= 'a' && c <= 'z') c -= 32;        sb.append(c);// sb.insert(0, c);        count++;    }    // return sb.substring(0, sb.length() - 1); // "---" 不通过    return sb.length() > 0 ? sb.reverse().substring(0, sb.length()-1) : "";}

转载于:https://my.oschina.net/yysue/blog/1833134

你可能感兴趣的文章
C语言基本概念(7)
查看>>
autoload-cache-1.7 发布
查看>>
autoload-cache-2.4 发布
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
了解CDP持续数据保护
查看>>
2011 Web设计的10大趋势
查看>>
centos6.5 下 mysql数据库的安装与配置
查看>>
SQL Server 维护计划
查看>>
快速低成本的搭建一个马马虎虎的博客
查看>>
Squid + DNS配置CDN加速服务器(概念篇)
查看>>
Spring数据库操作组件
查看>>
lanmp v2.5安装soap支持方法
查看>>
普华永道发表2012年全球信息安全状况调查报告
查看>>
关于SIEM和LM产品形态的小调查
查看>>
我的eclipse插件列表
查看>>
老板决策不当,是自己在“找死”
查看>>
JS创建类和对象
查看>>
linkcloud:KVM虚拟化渐趋成熟 可与XEN和Vmware比肩
查看>>
3月9日作业
查看>>