每天一道leetcode-125验证回文串
- 2019 年 10 月 4 日
- 筆記
昨天的题解
题目
每天一道leetcode-125验证回文串 分类:双指针
题目详述
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama" 输出: true 示例 2:
输入: "race a car" 输出: false
题目详解
思路
- 首先把字母变成小写,然后利用ASC码把数字和小写字母找到,并加到新的字符串中
- 然后对于这个新的字符串,一个指针在前,一个指针在后,依次比较两者是否相等;
代码(先发图片,再放代码,测试一下,看看会不会乱码)

class Solution { public boolean isPalindrome(String s) { s = s.toLowerCase(); char [] charArray = s.toCharArray(); String temp = ""; for(int i=;i<charArray.length;i++) { if( ((int)charArray[i] >= && (int)charArray[i] <= ) || ((int)charArray[i] >= && (int)charArray[i] <= )) { temp += charArray[i]; } } char [] resultArray = temp.toCharArray(); int begin = ;int end = resultArray.length - ; while(begin < end) { if(resultArray[begin] == resultArray[end]) { begin++; end--; }else{ return false; } } return true; } }
代码讲解
- 3-4变小写,字符串变字符数组
- 6-12行 利用ASC码找到数字和小写字母的字符,加到新的字符串temp;
- 15-24一个从头开始一个从尾巴开始,比较是否相等,不相等直接返回falas,都相等true