|
| 1 | +''' |
| 2 | +You are given a license key represented as a string S which consists only alphanumeric character and dashes. The string is separated into N+1 groups by N dashes. |
| 3 | + |
| 4 | +Given a number K, we would want to reformat the strings 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 all lowercase letters should be converted to uppercase. |
| 5 | + |
| 6 | +Given a non-empty string S and a number K, format the string according to the rules described above. |
| 7 | + |
| 8 | +Example 1: |
| 9 | +Input: S = "5F3Z-2e-9-w", K = 4 |
| 10 | + |
| 11 | +Output: "5F3Z-2E9W" |
| 12 | + |
| 13 | +Explanation: The string S has been split into two parts, each part has 4 characters. |
| 14 | +Note that the two extra dashes are not needed and can be removed. |
| 15 | +Example 2: |
| 16 | +Input: S = "2-5g-3-J", K = 2 |
| 17 | + |
| 18 | +Output: "2-5G-3J" |
| 19 | + |
| 20 | +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. |
| 21 | +Note: |
| 22 | +The length of string S will not exceed 12,000, and K is a positive integer. |
| 23 | +String S consists only of alphanumerical characters (a-z and/or A-Z and/or 0-9) and dashes(-). |
| 24 | +String S is non-empty. |
| 25 | +''' |
| 26 | + |
| 27 | +class Solution(object): |
| 28 | + def licenseKeyFormatting(self, S, K): |
| 29 | + """ |
| 30 | + :type S: str |
| 31 | + :type K: int |
| 32 | + :rtype: str |
| 33 | + """ |
| 34 | + S = S.replace('-','').upper() |
| 35 | + result = "" |
| 36 | + |
| 37 | + if len(S)%K == 0: |
| 38 | + for index in range(0, len(S), K): |
| 39 | + result += S[index:index+K] + "-" |
| 40 | + else: |
| 41 | + result = S[:len(S)%K] + "-" |
| 42 | + for index in range(len(S)%K, len(S), K): |
| 43 | + result += S[index:index+K] + "-" |
| 44 | + return result[:-1] |
0 commit comments