package leetcode.string; /** * 验证回文字符串 * * 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 * * 说明:本题中,我们将空字符串定义为有效的回文串。 * * 示例 1: * 输入: "A man, a plan, a canal: Panama" * 输出: true * * 示例 2: * 输入: "race a car" * 输出: false */ public class IsPalindrome { public static void main(String[] args) { String s = "A man, a plan, a canal: Panama"; System.out.println(isPalindrome(s)); } public static boolean isPalindrome(String s) { s = s.toLowerCase(); StringBuilder l = new StringBuilder(); for (int i = 0; i < s.length(); i++) { if ((s.charAt(i) >= '0' && s.charAt(i) <= '9') || (s.charAt(i) >= 'a' && s.charAt(i) <= 'z')) { l.append(s.charAt(i)); } } int j = 0, k = l.length() - 1; while (j < k) { if (l.charAt(j++) != l.charAt(k--)) { return false; } } return true; } }