输出任意字符串中最长的回文长度
2017-09-26 09:21
267 查看
如题,查找字符串中最长的回文,并输出该回文的长度。
例如:
输入:12ABBA
输出:4
输入:51233214
输出:6
注意:string::substr(p,n)方法第二个参数是字符串长度!!
例如:
输入:12ABBA
输出:4
输入:51233214
输出:6
#include<string> #include<iostream> #include <algorithm> using namespace std; bool is_palindrome(string s) //判断字符串s是否是回文 { //cout << s << endl; return equal(s.begin(), s.begin() + s.length() / 2, s.rbegin()); } int main() { string str; while (cin>>str) { int length = str.length(); do { for (size_t i = 0; i < str.length() - length + 1; ++i) { if (is_palindrome(str.substr(i, length))) { cout << length << endl; length = 0;//控制跳出while循环 break; } } } while (length--); } return 0; }
注意:string::substr(p,n)方法第二个参数是字符串长度!!
相关文章推荐
- C语言从一个字符串中,找到最长的回文,并输出
- 409. Longest Palindrome (计算可由一个字符串中数字字符构成的最长回文数的长度)
- 字符串的最长回文长度
- 输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。
- 输入一行子串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置
- bupt 204 Palindrome 求字符串任意区间的最长回文子串 二分答案+后缀数组
- (最长回文字串)字符串中对称的子字符串的最大长度
- 一种快速求解最长回文字符串长度的算法
- 问题:求两个字符串的最长公共子串。 要求:输入两个字符串,输出它们的最长公共子串,包括长度。
- 字符串中对称字符串的最大长度(最长回文)
- 找出字符串最长不重复子串,输出长度
- 找出字符串中对称的子字符串的最大长度(最长回文)[No. 14]
- 输入一行字符串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置
- POJ3974 求字符串的最长回文子串的长度
- 假设有这样一种字符串,它们的长度不大于 10,不重复的输出它的任意排列
- 算法3—找出字符串中对称的子字符串的最大长度(最长回文)
- 005求一个字符串中出现相同且长度最长的字符串,输出它及其首字符位置
- 输入一个字符串,输出长度最长的单词
- 找出字符串的最长不重复子串,输出长度
- C语言---递归反向输出任意长度的字符串