朴素的中心扩展想法

判断回文

http://www.nowcoder.com/questionTerminal/e297fdd8e9f543059b0b5f05f3a7f3b2

很朴素的中心扩展想法,根据字符串的长度不同来确定不同的左右指针。详见注解,时间为O(S),空间O(1),其中S是字符串长度。

public boolean judge (String str) {
    int left = 0, right = 0;
    //根据长度的奇偶性来确定不同的指针起始位置
    if ((str.length() & 1) == 0) {
        left = (str.length() >> 1) - 1;
        right = (str.length() >> 1);
    } else {
        left = right = (str.length() >> 1);
    }
    //进行中心扩展,扩展的过程中一旦遇到不相等的直接返回即可
    for (; left >= 0 && right < str.length(); left--, right++) {
        if (str.charAt((left)) != (str.charAt(right))) return false;
    }
    //扩展完毕,返回true
    return true;
}       
全部评论

相关推荐

牛客29046817...:优化一下简历,突出重点,简历上的技能复习扎实,实习工作啥的整理成文档梳理一下怎么说要有自己的思考在里边,岗位的话运维,测试,开发,实施,技术支持能投的都投,多投递能找到的,秋招投递了3个月左右(8月中旬到11月下旬),boos打招呼8000多次,官网投递300多家,才找到一家满意的
点赞 评论 收藏
分享
牛马人的牛马人生:太舒服了接接接
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务