
题目125.验证回文串要求如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后短语正着读和反着读都一样。则可以认为该短语是一个回文串。字母和数字都属于字母数字字符。给你一个字符串s如果它是回文串返回true否则返回false。示例示例 1 输入: s A man, a plan, a canal: Panama 输出true 解释amanaplanacanalpanama 是回文串。 示例 2 输入s race a car 输出false 解释raceacar 不是回文串。 示例 3 输入s 输出true 解释在移除非字母数字字符之后s 是一个空字符串 。 由于空字符串正着反着读都一样所以是回文串。思路首先我们可以看到题中说明回文串不受大小写限制以及只看数字字母其他字符不管那我们先把这两个要求达到全部变成小写字符用Character.toLowerCase()这个方法仅处理单个字符去除其他字符用Character.isLetterOrDigit()这个方法来判断是否为 数字/字母得到一个纯数字字母字符串后再利用双指针来进行首尾判断判断是否相同若相同则是回文串反之不是代码class Solution { public boolean isPalindrome(String s) { StringBuilder sbnew StringBuilder(); int lengths.length(); for(int i0;ilength;i){ char chs.charAt(i); if(Character.isLetterOrDigit(ch)){ sb.append(Character.toLowerCase(ch)); } } String filteredsb.toString(); //双指针 int left0; int rightfiltered.length()-1; while(leftright){ if(filtered.charAt(left)!filtered.charAt(right)){ return false; } left; right--; } return true; } }小舟有话说这是一个基础的双指针题双指针是非常重要的一种算法大家要多多练习如果觉得有帮助到你那点点关注吧下次不迷路~