LeetCode125

class Solution {

public:

    bool isPalindrome(string s) {

        //"0P"这类的测试用例,恰好碰上了这个解法的漏洞,即刚好ascii也相差32,会被判为正确,所以需要额外判断

        int start=0;

        int end=s.size()-1;

        while(start<end)

        {

            if(JudgeEffectiveness(s[start])!=true)

            {

                start++;

                continue;

            }

            if(JudgeEffectiveness(s[end])!=true)

            {

                end--;

                continue;

            }

            if(s[start]<=57||s[end]<=57)

            {

                if(s[start]!=s[end])

                    return false;

            }

            else if(s[start]!=s[end]&&abs(s[start]-s[end])!=32)

                return false;

            start++;

            end--;

        }

        return true;

    }

    bool JudgeEffectiveness(char c){

        if(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)

            return true;

        return false;

    }

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值