Skip to content

Commit 73f3034

Browse files
author
freemanzhang
committed
init impl
1 parent 3cc9f49 commit 73f3034

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package string;
2+
3+
/*
4+
Now you are given a string S, which represents a software license key which we would like to format. The string S is composed of alphanumerical characters and dashes.
5+
The dashes split the alphanumerical characters within the string into groups. (i.e. if there are M dashes, the string is split into M+1 groups). The dashes in the given string are possibly misplaced.
6+
7+
We want each group of characters to be of length K (except for possibly the first group, which could be shorter, but still must contain at least one character).
8+
To satisfy this requirement, we will reinsert dashes. Additionally, all the lower case letters in the string must be converted to upper case.
9+
10+
So, you are given a non-empty string S, representing a license key to format, and an integer K. And you need to return the license key formatted according to the description above.
11+
12+
Example 1:
13+
Input: S = "2-4A0r7-4k", K = 4
14+
15+
Output: "24A0-R74K"
16+
17+
Explanation: The string S has been split into two parts, each part has 4 characters.
18+
Example 2:
19+
Input: S = "2-4A0r7-4k", K = 3
20+
21+
Output: "24-A0R-74K"
22+
23+
Explanation: The string S has been split into three parts, each part has 3 characters except the first part as it could be shorter as said above.
24+
Note:
25+
The length of string S will not exceed 12,000, and K is a positive integer.
26+
String S consists only of alphanumerical characters (a-z and/or A-Z and/or 0-9) and dashes(-).
27+
String S is non-empty.
28+
* */
29+
30+
public class LicenseKeyFormatting
31+
{
32+
public String licenseKeyFormatting( String S, int K )
33+
{
34+
StringBuilder result = new StringBuilder();
35+
for ( int i = S.length() - 1; i >= 0; i-- )
36+
{
37+
if ( S.charAt( i ) != '-' )
38+
{
39+
if ( result.length() % ( K + 1 ) == K )
40+
{
41+
result.append( '-' );
42+
}
43+
result.append( S.charAt( i ) );
44+
}
45+
}
46+
return result.reverse().toString().toUpperCase();
47+
}
48+
}

0 commit comments

Comments
 (0)