leetcode:最长回文子串

来源:互联网 发布:php技术论坛 编辑:程序博客网 时间:2024/06/06 21:00
具体介绍略过,这道题暂时只想到暴力的思路,即从头遍历到尾,对于每个字符,寻找以它为中心的最长串,以及以它左边和它为中心的最长串即可,这里讲讲编程的时候遇到的几个地方。

第一个就是,最开始一直输出错误答案,开始以为是判定边界有问题,把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;

最后需要注意一点,如果逐个字符判断过去,用时太长肯定会超时,解决办法是找到最长的相同字符组成的子串,然后再在该子串两边开始逐个判断