package com.leetcode.easy;
public class Hot125_isPalindrome {
public static boolean isPalindrome(String s) {
StringBuilder sb = new StringBuilder();
for(int i = 0;i<length; ++i) {
if(Character.isLetterOrDigit(ch)){
sb.append(Character.toLowerCase(ch));
StringBuilder sbRev = new StringBuilder(sb).reverse();
return sb.toString().equals(sbRev.toString());
public static boolean isPalindrome2(String s) {
StringBuilder sb = new StringBuilder();
for(int i = 0;i< length;++i) {
if(Character.isLetterOrDigit(ch)) {
sb.append(Character.toLowerCase(ch));
int left = 0, right = n - 1;
if(sb.charAt(left) != sb.charAt(right)) {
public static boolean isPalindrome3(String s) {
int left = 0, right = n-1;
while(left < right && !Character.isLetterOrDigit(s.charAt(left)))
while(left < right && !Character.isLetterOrDigit(s.charAt(right)))
if(s.charAt(left) != s.charAt(right))
public static void main(String[] args) {
String s = "A man, a plan, a canal: Panama";
System.out.println(isPalindrome(s));
System.out.println(isPalindrome2(s));
System.out.println(isPalindrome3(s));
