诚聘php网站开发师,提升关键词,自媒体短视频制作教程,wordpress主题谁的最好LeetCode#xff1a;验证回文串【125】 题目描述 给定一个字符串#xff0c;验证它是否是回文串#xff0c;只考虑字母和数字字符#xff0c;可以忽略字母的大小写。 说明#xff1a;本题中#xff0c;我们将空字符串定义为有效的回文串。 示例 1: 输入: A man, a …LeetCode验证回文串【125】 题目描述 给定一个字符串验证它是否是回文串只考虑字母和数字字符可以忽略字母的大小写。 说明本题中我们将空字符串定义为有效的回文串。 示例 1: 输入: A man, a plan, a canal: Panama
输出: true示例 2: 输入: race a car
输出: false 题目分析 很明显这是双指针问题回文判断的方式有很多种最简单的是将原字符串逆序后判断两者是否相同。但是显然这里有干扰字符所以无法直接使用这一方法。 那我们只好模拟回文的判断方法就是两个指针分别从左右出发遇到干扰字符跳过遇到相同字符则接着向内靠拢如果合法字符但是不相同则不符合回文规律。 思路很清晰但是最重要的是把细节扣好比如双指针相遇的条件、干扰字符跳过、不合法的种种情况识别等等。 Java题解 class Solution {public boolean isPalindrome(String s) {ss.toLowerCase().trim();int left 0;int right s.length()-1;while(leftright){while(!isValid(s.charAt(left))leftright)left;while(!isValid(s.charAt(right))leftright)right--;if(leftright)return false;if(s.charAt(left)!s.charAt(right))return false;left;right--;}return true;}public boolean isValid(char c){if((c0c9)||(cacz))return true;return false;}
} 转载于:https://www.cnblogs.com/MrSaver/p/9692871.html