LeetCode125. 验证回文串
一、题目描述
二、解法
思路1:双指针。
思路2:reverse后看是否相等。
class Solution { public boolean isPalindrome(String s) { if (s == null) return true; /** * 方法1:双指针 */ char[] chars = s.toLowerCase().toCharArray(); int l = 0, r = chars.length - 1; while (l < r) { if (!isType(chars[l])) { l ++; continue; } if (!isType(chars[r])) { r --; continue; } if (chars[l] != chars[r]) { return false; } l ++; r --; } return true; /** * 方法2:reverse */ /* s = s.toLowerCase(); StringBuilder sb = new StringBuilder(s.length()); for (int i = 0; i < s.length(); i++) { if (isType(s.charAt(i))) { sb.append(s.charAt(i)); } } return sb.toString().equals(sb.reverse().toString()); */ } private boolean isType(char c) { return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'z'); } }