当前位置: 首页 > 图灵资讯 > 技术篇> #yyds干货盘点# LeetCode程序员面试金典:验证回文串

#yyds干货盘点# LeetCode程序员面试金典:验证回文串

来源:图灵教育
时间:2023-06-08 09:16:19

题目:

如果将所有大写字符转换为小写字符并删除所有非字母数字字符,则短语正向和反向读取相同。可以认为这个短语是一个 回文串 。

字母和数字都属于字母数字符。

给你一个字符串 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 是空字符串 "" 。

因为空字符串正反读都是一样的,所以是回文串。

代码实现:

class Solution {    public boolean isPalindrome(String s) {        StringBuffer sgood = new StringBuffer();        int length = s.length();        for (int i = 0; i < length; i++) {            char ch = s.charAt(i);            if (Character.isLetterOrDigit(ch)) {                sgood.append(Character.toLowerCase(ch));            }        }        StringBuffer sgood_rev = new StringBuffer(sgood).reverse();        return sgood.toString().equals(sgood_rev.toString());    }}