您的位置:首页 > 其它

leetcode:最长回文子串

2017-09-05 12:33 351 查看
具体介绍略过,这道题暂时只想到暴力的思路,即从头遍历到尾,对于每个字符,寻找以它为中心的最长串,以及以它左边和它为中心的最长串即可,这里讲讲编程的时候遇到的几个地方。

第一个就是,最开始一直输出错误答案,开始以为是判定边界有问题,把s.length()改成s.size(),发现并没有变化,后来上网查了一下,根据c++标准库,length和size函数没有差别,是因为先有的length,后来引入STL,为了保证与STL标准容器接口匹配,又在string类里面加入了size函数。

然后找到了错误的原因,是string不支持两个字符相加,比如
char c1,c2;
....//赋值
string str;
str = c1+c2;
这样是不行的,必须用assign函数先把一个char赋值给str,然后再用+号连接
str.assign(1,c1);
str=curstr+c2;

最后需要注意一点,如果逐个字符判断过去,用时太长肯定会超时,解决办法是找到最长的相同字符组成的子串,然后再在该子串两边开始逐个判断
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: