Skip to content

Commit aaf3487

Browse files
committed
Valid Palindrome
Code refactoring
1 parent a31c5f6 commit aaf3487

File tree

1 file changed

+4
-27
lines changed

1 file changed

+4
-27
lines changed

valid-palindrome/TonyKim9401.java

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,12 @@
22
// SC: O(n)
33
class Solution {
44
public boolean isPalindrome(String s) {
5-
String target = checkString(s);
6-
return checkPalindrome(target);
7-
}
8-
9-
private String checkString(String s) {
10-
StringBuilder sb = new StringBuilder();
11-
for (char c : s.toCharArray()) {
12-
if (c >= 'a' && c <= 'z') {
13-
sb.append(c);
14-
}
15-
if (c >= 'A' && c <= 'Z') {
16-
c = (char)(c - 'A' + 'a');
17-
sb.append(c);
18-
}
19-
if (c >= '0' && c <= '9') {
20-
sb.append(c);
21-
}
22-
}
23-
return sb.toString();
24-
}
5+
s = s.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
256

26-
private Boolean checkPalindrome(String target) {
27-
int start = 0;
28-
int end = target.length() - 1;
7+
if (s.length() == 1) return true;
298

30-
while (start < end) {
31-
if (target.charAt(start) != target.charAt(end)) return false;
32-
start += 1;
33-
end -= 1;
9+
for (int i = 0; i < s.length() / 2; i++) {
10+
if (s.charAt(i) != s.charAt(s.length() - i - 1)) return false;
3411
}
3512
return true;
3613
}

0 commit comments

Comments
 (0)