最后更新
一刷
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();
}
}