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; } } return false; } }