博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hihocoder 最长回文子串简单解法
阅读量:4187 次
发布时间:2019-05-26

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

看了一下说明感觉他的解法很麻烦,这里给出一种非常简单高效的解法。

#include
#include
#include
using namespace std;int longestPalindrome(string s) { if (s.empty()) return 0; if (s.size() == 1) return 1; int max_len = 1; // for (int i = 0; i < s.size();) { if (s.size() - i <= max_len / 2) break; int j = i, k = i; //j is a pre pointer,k is next pointer while (k < s.size() - 1 && s[k + 1] == s[k]) ++k; // Skip duplicate characters. i = k + 1; while (k < s.size() - 1 && j > 0 && s[k + 1] == s[j - 1]) { ++k; --j; } // Expand. if ( k - j + 1 > max_len) max_len = k - j + 1; } return max_len;}int main(){ int num;string s; cin>>num; for(int i=0;i
>s; cout<
<

转载地址:http://epdoi.baihongyu.com/

你可能感兴趣的文章
MySQL数据表操作
查看>>
iTerm2 设置字体(Mac OS X)
查看>>
Git变更远程仓库地址
查看>>
Linux touch命令:创建文件
查看>>
Python list extend()方法
查看>>
多项式相加(Python实现)
查看>>
匹配微博转发关系(Python)
查看>>
Git显示或关闭颜色
查看>>
Go println函数:将数据打印到控制台
查看>>
Linux cp命令:复制文件或目录
查看>>
Python装饰器
查看>>
mac安装RabbitMQ
查看>>
CentOS7安装httpd
查看>>
Git忽略特殊文件:.gitignore
查看>>
Go 检测密码强度(密码安全性)
查看>>
设置Linux主机免密认证
查看>>
Python list insert方法
查看>>
快速排序(Python实现)
查看>>
Python实现单向链表
查看>>
整数反转(Python,LeetCode)
查看>>