题解 | #验证回文字符串(二)#

验证回文字符串(二)

http://www.nowcoder.com/practice/130e1a9eb88942239b66e53ec6e53f51

class Solution {

public:

bool palindrome2(string str, int left, int right) {
    /*
    对删除元素后的字符串进行判断
    因为前面已经判断了,所以多设置left和right两个参数
    避免重复判断前面,导致耗时增加
    */
    while (left < right) {
        if (str[left] != str[right])
            return false;
        left++;
        right--;
    }
    return true;
}
bool palindrome(string str) {
    // write code here
    
    /*
    如果str长度为1或者2可以直接返回true
    一定能通过裁剪变成回文
    */
    
    if (str.length() == 1 || str.length() == 2) {
        return true;
    }
    /*
    定义首尾指针,指向字符串首尾
    */
    int left = 0;
    int right = str.length() - 1;
    
    /*
    开始首尾遍历
    查找不相同的字符
    找到后删除字符再判断
    如果没有返回true
    */
    
    while (left < right) {
        if (str[left] == str[right]) {
            left++;
            right--;
        } else {
        
            /*
            删除字符分为两种,删除left或者right
            所以复制一个str
            一个删除left判断
            一个删除right判断
            */
            
            string temp = str;
            
            /*
            因为删除了一个元素
            所以设置首尾指针时,
            被删除指针要后移(对尾指针来说是前移)
            erase()函数删除相应字符
            erase(int pos,int num)从pos开始删除num个字符
            erase(p)删除迭代器p指向的字符
            erase(first,last)删除迭代器first到last范围内的字符
            */
            
            return palindrome2(str.erase(left, 1), left - 1, right) ||
                   palindrome2(temp.erase(right, 1), left, right - 1);
        }
    }
    return true;
}

};

全部评论

相关推荐

程序员小白条:vibe你只要能cover住面试官问你很多深入的实现和选型方案的原因,以及怎么去检测优化效果的就行了
点赞 评论 收藏
分享
04-02 10:09
门头沟学院 Java
用微笑面对困难:这里面问题还是很多的,我也不清楚为啥大家会感觉没啥问题。首先就是全栈开发实习9个月的内容都没有java实习生的内容多,1整个技术栈没看出太核心和难点的内容,感觉好像被拉过去打杂了,而且全栈基本上很容易被毙。里面能问的bug是在太多了比如L:继承 BaseMapper 可直接使用内置方法’。请问你的 BaseMapper 是如何扫描实体类注解如果瞬时产生 100 个上传任务,MySQL 的索引设计是否会有瓶颈?你做过分库分表或者索引优化吗?全栈的内容可以针对动态难点去搞,技能特长写在下面吧,你写了这么多技能,项目和实习体现了多少?你可以在项目里多做文章然后把这个放下去,从大致来看实习不算太水,有含金量你也要写上内容针对哨兵里面的节点变化能问出一万个问题,这个很容易就爆了。
提前批简历挂麻了怎么办
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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