Problem 482: License Key Formatting

https://leetcode.com/problems/license-key-formatting/#/description

思路

  • 这道题的要求是第一个 group 可以不满足 k 的长度,但后面的都要满足。所以如果我们能从后往前排,最后剩下几个就是几个会特别方便。

  • 这里的几个对 String 的处理需要熟练:reverse()toString()toUpperCase().

  • 每隔 k 位插一个 dash,用 %来判断。

public class Solution {
    public String licenseKeyFormatting(String S, int K) {
        StringBuilder sb = new StringBuilder();
        for (int i = S.length() - 1; i >= 0; i--) {
            char c = S.charAt(i);
            if (c == '-') continue;
            sb.append(sb.length() % (K + 1) == K ? "-" : "").append(c);
        }
        return sb.reverse().toString().toUpperCase();
    }
}

Last updated