-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path784_Letter_Case_Permutation.java
More file actions
30 lines (28 loc) · 979 Bytes
/
784_Letter_Case_Permutation.java
File metadata and controls
30 lines (28 loc) · 979 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Solution {
public List<String> letterCasePermutation(String S) {
int charPoint = -1;
for (int i = 0; i < S.length(); i++) {
if (S.charAt(i) > 64) {
charPoint = i;
break;
}
}
List<String> answer = new ArrayList<>();
if (charPoint == -1) {
answer.add(S);
return answer;
}
String numString = S.substring(0, charPoint);
List<String> part = letterCasePermutation(S.substring(charPoint + 1));
String stringPoint = Character.toString(S.charAt(charPoint));
String convert = Character.toString(S.charAt(charPoint) - 32);
if (S.charAt(charPoint) < 91) {
convert = Character.toString(S.charAt(charPoint) + 32);
}
for (String ps : part) {
answer.add(numString + stringPoint + ps);
answer.add(numString + convert + ps);
}
return answer;
}
}