58 lines
1.7 KiB
Java
58 lines
1.7 KiB
Java
package com.zerroi.leetcode.ThreeTen;
|
|
|
|
|
|
public class IsPalindrome {
|
|
public static void main(String[] args) {
|
|
SolutionSecond solutionSecond = new SolutionSecond();
|
|
solutionSecond.isPalindrome("race a car");
|
|
}
|
|
}
|
|
|
|
class SolutionSecond {
|
|
public boolean isPalindrome(String s) {
|
|
StringBuilder builder = new StringBuilder();
|
|
for (int i = 0; i < s.length(); i++) {
|
|
char c = s.charAt(i);
|
|
if ((c >= 65 && c <= 90) || (c >= 97 && c <= 122) || (c >= 48 && c <= 59)) {
|
|
builder.append(String.valueOf(c).toLowerCase());
|
|
}
|
|
}
|
|
String str = builder.toString();
|
|
return builder.reverse().toString().equals(str);
|
|
}
|
|
|
|
public boolean isPalindromeTow(String s) {
|
|
|
|
class Solution {
|
|
public boolean isPalindrome(String s) {
|
|
boolean ans = true;
|
|
int l = 0;
|
|
int r = s.length() - 1;
|
|
while (true) {
|
|
if (l > r) {
|
|
break;
|
|
}
|
|
char lc = s.charAt(l);
|
|
char rc = s.charAt(r);
|
|
if (!Character.isLetterOrDigit(lc)) {
|
|
l++;
|
|
continue;
|
|
}
|
|
if (!Character.isLetterOrDigit(rc)) {
|
|
r--;
|
|
continue;
|
|
}
|
|
if (Character.toLowerCase(lc) == Character.toLowerCase(rc)) {
|
|
l++;
|
|
r--;
|
|
} else {
|
|
ans = false;
|
|
break;
|
|
}
|
|
}
|
|
return ans;
|
|
}
|
|
}
|
|
}
|
|
}
|