题目:125.验证回文串

该文章介绍了一个LeetCode上的编程问题,即验证一个字符串是否为回文串。解决方案包括处理字符串(转为小写并移除非字母数字字符),然后遍历检查字符的一半是否与对应位置的反向字符匹配。另外,文中提到一种更高效的解法,即直接在原字符串上判断并跳过非字母数字字符。
摘要由CSDN通过智能技术生成

题目来源:

        leetcode题目,网址:125. 验证回文串 - 力扣(LeetCode)

解题思路:

        先根据要求处理字符串,将大写字母转化为小写字母,非小写字母及数字删除;然后遍历字符串,看其是否符合回文串的定义,证书第n个字符与倒数第n个字符一样。

解题代码:

class Solution {
    public boolean isPalindrome(String s) {
        String dealed=dealString(s);
        return judge(dealed);
    }
    public static String dealString(String s){//将字符串处理为符合规则的短语
        StringBuffer res=new StringBuffer();
        for(int i=0;i<s.length();i++){
            char c=s.charAt(i);
            if(Character.isUpperCase(c)){
                res.append((char)(c-'A'+'a'));
            }else if(Character.isLowerCase(c) || Character.isDigit(c)){
                res.append(c);
            }
        }
        return res.toString();
    }
    public static boolean judge(String s){//判断字符串s是否为回文串;根据测试用例,空串是回文串。
        boolean res=true;
        for(int i=0;i<s.length()/2;i++){
            if(s.charAt(i) != s.charAt(s.length()-1-i)){
                res=false;
                break;
            }
        }
        return res;
    }
}
 

总结:

        官方题解里面有种解法是直接在原字符串上进行判断,若碰到非字母及数字则跳过,效率更高。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值