L2-008 最长对称子串 (25 分)(双指针)

简介: L2-008 最长对称子串 (25 分)(双指针)

对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。


输入格式:

输入在一行中给出长度不超过1000的非空字符串。


输出格式:

在一行中输出最长对称子串的长度。


输入样例:

Is PAT&TAP symmetric?

结尾无空行


输出样例:

11

结尾无空行


#include<iostream>
using namespace std;
int main()
{
    int max=0;
    string s;
    getline(cin,s);
    for(int i=0;i<s.size();i++)//两个相邻元素对称
    {
        int k=0,l=i,r=i+1;
        while(l>=0&&r<s.size()&&s[l]==s[r])
        {
            l--,r++;
            k+=2;
        }
        if(max<k) max=k;
    }
    for(int i=0;i<s.size();i++)//关于中间的字母对称
    {
        int k=1,l=i-1,r=i+1;
        while(l>=0&&r<s.size()&&s[l]==s[r])
        {
            l--,r++;
            k+=2;
        }
        if(max<k) max=k;
    }
    cout<<max;
    return 0;
}


目录
相关文章
|
6月前
|
关系型数据库 测试技术 RDS
【动态规划】【字符串】【状态压缩】943 最短超级串
【动态规划】【字符串】【状态压缩】943 最短超级串
|
算法 测试技术 C++
C++算法:最短回文串
C++算法:最短回文串
【动态规划刷题 15】最长定差子序列&& 最长的斐波那契子序列的长度
【动态规划刷题 15】最长定差子序列&& 最长的斐波那契子序列的长度
|
6月前
【每日一题Day226】L1156单字符重复子串的最大长度 | 贪心+滑动窗口
【每日一题Day226】L1156单字符重复子串的最大长度 | 贪心+滑动窗口
55 0
|
6月前
|
算法 程序员 索引
【算法训练-动态规划 三】【双序列DP问题】最长重复子数组、最长公共子串、最长公共子序列、编辑距离
【算法训练-动态规划 三】【双序列DP问题】最长重复子数组、最长公共子串、最长公共子序列、编辑距离
99 0
|
算法 C++
剑指offer(C++)-JZ48:最长不含重复字符的子字符串(算法-动态规划)
剑指offer(C++)-JZ48:最长不含重复字符的子字符串(算法-动态规划)
最长不重复子串的有趣解法
最长不重复子串的有趣解法
135 0
|
存储 算法 前端开发
前端算法-最长的递增子序列
前端算法-最长的递增子序列
|
算法 C++
C++/PTA 最长对称子串
对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。
85 0
7-46 最长对称子串 (25 分)
7-46 最长对称子串 (25 分)
110 0