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;
}


目录
相关文章
|
27天前
|
关系型数据库 测试技术 RDS
【动态规划】【字符串】【状态压缩】943 最短超级串
【动态规划】【字符串】【状态压缩】943 最短超级串
|
8月前
|
算法 测试技术 C++
C++算法:最短回文串
C++算法:最短回文串
|
9月前
【动态规划刷题 15】最长定差子序列&& 最长的斐波那契子序列的长度
【动态规划刷题 15】最长定差子序列&& 最长的斐波那契子序列的长度
|
27天前
|
算法 索引
【刷题】滑动窗口精通 — Leetcode 30. 串联所有单词的子串 | Leetcode 76. 最小覆盖子串
经过这两道题目的书写,相信大家一定深刻认识到了滑动窗口的使用方法!!! 下面请大家继续刷题吧!!!
17 0
|
27天前
代码随想录 Day44 动规12 LeetCode T300 最长递增子序列 T674 最长连续递增序列 T718 最长重复子数组
代码随想录 Day44 动规12 LeetCode T300 最长递增子序列 T674 最长连续递增序列 T718 最长重复子数组
46 0
|
27天前
【每日一题Day226】L1156单字符重复子串的最大长度 | 贪心+滑动窗口
【每日一题Day226】L1156单字符重复子串的最大长度 | 贪心+滑动窗口
29 0
|
27天前
|
算法 程序员 索引
【算法训练-动态规划 三】【双序列DP问题】最长重复子数组、最长公共子串、最长公共子序列、编辑距离
【算法训练-动态规划 三】【双序列DP问题】最长重复子数组、最长公共子串、最长公共子序列、编辑距离
72 0
|
7月前
|
算法
代码随想录算法训练营第五十二天 | LeetCode 300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
代码随想录算法训练营第五十二天 | LeetCode 300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
39 1
|
12月前
最长不重复子串的有趣解法
最长不重复子串的有趣解法
118 0
|
12月前
|
机器学习/深度学习 人工智能 算法
代码随想录训练营day52| 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组...
代码随想录训练营day52| 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组...