Skip to content

Commit d5dda98

Browse files
authored
Refactored Letter Case Permutation.java
1 parent 3adf66b commit d5dda98

File tree

1 file changed

+14
-19
lines changed

1 file changed

+14
-19
lines changed

Easy/Letter Case Permutation.java

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,24 @@
11
class Solution {
22
public List<String> letterCasePermutation(String S) {
3-
Set<String> set = new HashSet<>();
4-
helper(S, 0, set, new StringBuilder());
5-
return new ArrayList<>(set);
3+
List<String> result = new ArrayList<>();
4+
helper(S, 0, new StringBuilder(), result);
5+
return result;
66
}
77

8-
private void helper(String s, int idx, Set<String> set, StringBuilder sb) {
8+
private void helper(String s, int idx, StringBuilder sb, List<String> result) {
99
if (idx == s.length()) {
10-
if (sb.length() > 0) {
11-
set.add(new StringBuilder(sb.toString()).toString());
12-
}
13-
}
14-
else {
15-
char c = s.charAt(idx);
16-
if (Character.isDigit(c)) {
17-
sb.append(c);
18-
helper(s, idx + 1, set, sb);
10+
result.add(new String(sb.toString()));
11+
} else {
12+
if (Character.isDigit(s.charAt(idx))) {
13+
sb.append(s.charAt(idx));
14+
helper(s, idx + 1, sb, result);
1915
sb.deleteCharAt(sb.length() - 1);
20-
}
21-
else {
22-
sb.append(Character.toLowerCase(c));
23-
helper(s, idx + 1, set, sb);
16+
} else {
17+
sb.append(Character.toLowerCase(s.charAt(idx)));
18+
helper(s, idx + 1, sb, result);
2419
sb.deleteCharAt(sb.length() - 1);
25-
sb.append(Character.toUpperCase(c));
26-
helper(s, idx + 1, set, sb);
20+
sb.append(Character.toUpperCase(s.charAt(idx)));
21+
helper(s, idx + 1, sb, result);
2722
sb.deleteCharAt(sb.length() - 1);
2823
}
2924
}

0 commit comments

Comments
 (0)