482. License Key Formatting

Difficulty:
Related Topics:
Similar Questions:

    Problem

    You are given a license key represented as a string s that consists of only alphanumeric characters and dashes. The string is separated into n + 1 groups by n dashes. You are also given an integer k.

    We want to reformat the string s such that each group contains exactly k characters, except for the first group, which could be shorter than k but still must contain at least one character. Furthermore, there must be a dash inserted between two groups, and you should convert all lowercase letters to uppercase.

    Return the reformatted license key.

      Example 1:

    Input: s = "5F3Z-2e-9-w", k = 4
    Output: "5F3Z-2E9W"
    Explanation: The string s has been split into two parts, each part has 4 characters.
    Note that the two extra dashes are not needed and can be removed.
    

    Example 2:

    Input: s = "2-5g-3-J", k = 2
    Output: "2-5G-3J"
    Explanation: The string s has been split into three parts, each part has 2 characters except the first part as it could be shorter as mentioned above.
    

      Constraints:

    Solution (Java)

    class Solution {
        public String licenseKeyFormatting(String s, int k) {
            StringBuilder sb = new StringBuilder();
            int cnt = 0;
            int occ = 0;
            for (char c : s.toCharArray()) {
                if (c == '-') {
                    continue;
                }
                cnt++;
            }
            int l = cnt % k;
            for (char c : s.toCharArray()) {
                if (c == '-') {
                    continue;
                }
                if (occ == k) {
                    occ = 0;
                    sb.append('-');
                } else if (occ == l && l != 0) {
                    l = 0;
                    occ = 0;
                    sb.append('-');
                }
                sb.append(Character.toUpperCase(c));
                occ++;
            }
            return sb.toString();
        }
    }
    

    Explain:

    nope.

    Complexity: