482. License Key Formatting

最后更新

一刷
11-Jan-2017

这个题是Ez难度的吧。。。

注意edge cases就行。

熟悉下Character的方程:
Character.isDigit(c);
Character.isAlphabetic(c);

另外String.toUpperCase()就可以,没必要每一个char都尝试Character.toUpperCase()

Time Complexity:
O(N)
Space: constant

public class Solution {
    public String licenseKeyFormatting(String S, int K) {
       
        if (K <= 0 || S.length() == 0) return "";
        
        StringBuilder sb = new StringBuilder();

        int total = 0;
        for (int i = S.length() - 1; i >= 0; i --) {
            char c = S.charAt(i);
            if (Character.isDigit(c) || Character.isAlphabetic(c)) {
                sb.append(c);
                if (++total % 4 == 0) {
                    sb.append('-');
                }
            }
        }
        
        sb.reverse();
        if (sb.length() != 0 && sb.charAt(0) == '-') {
            sb.deleteCharAt(0);
        }
        return sb.toString().toUpperCase();
    }
}
posted @ 2017-01-12 05:02  哇呀呀..生气啦~  阅读(197)  评论(0编辑  收藏  举报