博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Longest Palindromic Substring
阅读量:5740 次
发布时间:2019-06-18

本文共 973 字,大约阅读时间需要 3 分钟。

#include <cstring>

#include <iostream>
using namespace std;
class Solution {
public:
string longestPalindrome(string s) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(s == "")
return "";
int max = -1;
string result;
int length = s.length();
int g1,g2;
for(int i = 0;i < length;i++)
{
g1 = get11(s,i);
g2 = get12(s,i);
if(g2 > g1)
{
if(g2*2 > max)
{
result = s.substr(i-g2+1,g2*2);
max = g2*2;
}
}
else
{
if(g1*2+1>max)
{
result = s.substr(i-g1,g1*2+1);
max = g1*2+1;
}
}
}
return result;
}

int get11(string s,int p)

{
int i = 1;
int count = s.length();
while((p-i)>=0&&(p+i)<count&&s[p-i]==s[p+i])
{
i++;
}
return --i;
}

int get12(string s,int p)

{
int i = 0;
int count = s.length();
while((p-i)>=0&&(p+i+1)<count&&s[p-i]==s[p+i+1])
{
i++;
}
return i;
}
};
int main()
{
Solution s;
string t,a;
while(cin>>a){
t = s.longestPalindrome(a);
cout<<t<<endl;}
system("Pause");
return 0;
}

转载于:https://www.cnblogs.com/727713-chuan/p/3301824.html

你可能感兴趣的文章
我的友情链接
查看>>
centos5.9使用RPM包搭建lamp平台
查看>>
Javascript String类的属性及方法
查看>>
[LeetCode] Merge Intervals
查看>>
SharePoint 读取 Site Columns 的数据并绑定到DropdownList
查看>>
使用 axios 详解
查看>>
IPA提交APPStore问题记录(一)
查看>>
有利于seo优化的网站地图不能取巧
查看>>
快照产品体验优化
查看>>
ASCII
查看>>
ibatis SqlMap not found
查看>>
Android SD卡创建文件和文件夹失败
查看>>
Ubuntu 14.04 vsftp refusing to run with writable root inside chroot问题解决方法
查看>>
Intellij IDEA远程调试tomcat
查看>>
hadoop的学习论坛
查看>>
Struts2 学习小结
查看>>
烂泥:wordpress迁移到docker
查看>>
.扒渣机的性能及优势 
查看>>
Linux下磁盘保留空间的调整,解决df看到的空间和实际磁盘大小不一致的问题
查看>>
RSA 生成公钥、私钥对
查看>>