Skip to content

Commit b78ea5a

Browse files
authored
Merge pull request neetcode-gh#432 from vorenusCoA/main
Updating 125-valid-Palindrome.java so it uses two pointers
2 parents 53c3815 + eb5b592 commit b78ea5a

File tree

1 file changed

+27
-7
lines changed

1 file changed

+27
-7
lines changed

java/125-Valid-Palindrome.java

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,29 @@
11
public boolean isPalindrome(String s) {
2-
StringBuilder content = new StringBuilder();
3-
for(int i = 0; i < s.length(); i++)
4-
if(Character.isLetterOrDigit(s.charAt(i)))
5-
content.append(s.charAt(i));
6-
content = new StringBuilder(content.toString().toLowerCase());
7-
String value = content.toString();
8-
return value.equals(content.reverse().toString());
2+
3+
int i = 0;
4+
int j = s.length() - 1;
5+
while (i < j) {
6+
7+
Character start = s.charAt(i);
8+
Character end = s.charAt(j);
9+
10+
if (!Character.isLetterOrDigit(start)) {
11+
i++;
12+
continue;
13+
}
14+
15+
if (!Character.isLetterOrDigit(end)) {
16+
j--;
17+
continue;
18+
}
19+
20+
if (Character.toLowerCase(start) != Character.toLowerCase(end)) {
21+
return false;
22+
}
23+
24+
i++;
25+
j--;
926
}
27+
28+
return true;
29+
}

0 commit comments

Comments
 (0)