最长回文子字符串
来源:互联网 发布:python 定时发送邮件 编辑:程序博客网 时间:2024/05/22 04:34
假设当前扫描到第
char *longestPalindrome(char *s){ int len_s=strlen(s); char *new_s=malloc(sizeof(char)*(2*len_s+3)); int *P=malloc(sizeof(int)*(2*len_s+3)); char *result=malloc(sizeof(char)*(len_s+1)); new_s[0]='#'; new_s[2*len_s+2]='$'; int i; int max_len=0; int maxid=0; int id=0,len_id=0; for(i=1;i<=2*len_s+2;i++) { if(i % 2==1) new_s[i]='*'; else new_s[i]=s[(i-2)/2]; } for(i=1;i<2*len_s+2;i++) { if(i<maxid) P[i]=P[2*id-i]>(maxid-i)?(maxid-i):P[2*id-i]; else P[i]=1; while(new_s[i-P[i]]==new_s[i+P[i]]) P[i]++; if(i+P[i]>maxid) { maxid=i+P[i]; id=i; } if(P[i]>max_len) { max_len=P[i]; len_id=i; } } memcpy(result,s+(len_id-max_len)/2,max_len-1); result[max_len-1]='\0'; return result;}
0 0
- 最长回文子字符串
- 最长回文子字符串
- 最长回文子字符串
- 字符串:最长回文子串
- 最长回文子字符串问题
- 【字符串】最长回文子串
- 字符串的最长回文子序列以及最长子串
- 字符串系列之最长回文子串
- [Happy DSA] 求解最长回文子字符串
- 字符串系列之最长回文子串
- 字符串系列之最长回文子串
- 求字符串的最长回文子串
- 求字符串中的最长回文子串
- 字符串的最长回文子串
- 求字符串中最长回文子串
- 【字符串处理系列】最长回文子串
- 求字符串的最长回文子串
- 字符串处理------最长回文子串
- 十大编程算法助程序员走上高手之路
- 解放双手——Android自动化测试
- EasyUI tabs update 方法后控件无法渲染问题处理
- https://leetcode.com/problems/search-a-2d-matrix/
- android开发网站
- 最长回文子字符串
- 欢迎使用CSDN-markdown编辑器
- Ubuntu下同时安装了python2版本和python3版本如何使用pip分别为P2和P3安装不同类库
- sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0
- Mysql 触发器
- 剑指Offer-->二叉搜索树的后序遍历序列
- 文本语言模型的参数估计-最大似然估计、MAP及贝叶斯估计
- 数据库第4个实验工作量蛮大的
- https://leetcode.com/problems/search-for-a-range/