c++-最长回文字符串
来源:互联网 发布:webpack java整合 编辑:程序博客网 时间:2024/05/28 11:30
题目描述
对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。
给定字符串A以及它的长度n,请返回最长回文子串的长度。
测试样例:
"abc1234321ab",12
返回:7
解题思路:分为两种进行统计:偶数回文字符串以及奇数回文字符串,对于偶数,不存在中间的元素,因此,i=center-1, 而对于奇数,存在中间的元素,因此i=center+1;
class Palindrome {public: int findodd(string A, int center, int n){ int i= center-1; int j = center+1; while(i>=0 && j<=n-1){ if(A[i]!=A[j]) return j-1; i--; j++; } return j-1; } int findeven(string A, int center, int n){ int i= center; int j = center+1; while(i>=0 && j<=n-1){ if(A[i]!=A[j]) return j-1; i--; j++; } return j-1; } int getLongestPalindrome(string A, int n) { // write code here int max=0; int i,j,center=0; int end; for(auto c : A){ end=findodd(A, center, n); if(max<2*(end-center)+1) max=2*(end-center)+1; end=findeven(A, center, n); if(max<2*(end-center)) max=2*(end-center); center++; } return max; }};
阅读全文
0 0
- c++-最长回文字符串
- 最长回文字符串
- 最长回文字符串
- 最长回文字符串
- 最长回文字符串
- 字符串最长回文串
- 最长回文字符串
- 最长回文字符串
- 最长回文字符串
- 最长的回文字符串
- 最长回文子字符串
- 求解最长回文字符串
- 最长回文字符串
- 最长回文字符串
- 最长回文字符串Manacher
- 最长回文字符串
- 最长回文字符串
- 最长回文字符串
- Python
- codeforces 266B Queue at the School
- 二叉树遍历、栈、二叉查找树
- JSP_处理访问图片路径问题
- 数据结构 第五周项目三 括号的匹配
- c++-最长回文字符串
- Rotate Image -Leetcode
- HDU
- sql之left join、right join、inner join的区别
- FreeMarker+SpringMVC整合(五)
- RocketMQ实战(四)
- 正则的使用——编写一个简易的计算器
- UDp键盘聊天输入
- python3.x使用过程中发现的与2.x的不同