zoukankan      html  css  js  c++  java
  • PAT 甲级 1040 Longest Symmetric String 双指针

    地址 https://pintia.cn/problem-sets/994805342720868352/problems/994805446102073344

    题目大意是
    
    输入一行字符串,请输出最长的回文子串的长度 。
    
    回文定义 字符串正反的读出结果是一样的 比如123321 比如aba
    
    Sample Input:
    Is PAT&TAP symmetric?
    Sample Output:
    11

    最长回文子串在Leetcode系列和剑指Offer系列都有提到过

    可以使用动态规划和双指针检测 这里使用双指针检测 

     

    #include <iostream>
    #include <string>
    #include <string.h>
    using namespace std;
    
    int ans = 1;
    
    void Check(char s[]){
        int size = strlen(s);
        for(int i = 1;i<size-1;i++){
            int l = i-1; int r= i+1;
            while(l>=0 && r<size){
                if(s[l] == s[r]){ans = max(ans,r-l+1); l--;r++; }
                else {break;}
            }
        }
       
        for(int i =1;i<size-2;i++){
            if(s[i]!=s[i+1]) continue;
            ans = max(2,ans);
            int l= i-1;int r= i+2;
            while(l>=0&&r<size ){
                if(s[l]==s[r]){
                    ans = max(ans,r-l+1);
                    l--;r++;
                    }
                else {break;}
            }
        }
     
    }
    
    int main(){
        //string s;
        //getline(cin, s); // 要读入空格
        char s[1012];
        cin.get(s, 1012);///这样可以输入空格,遇回车终止输入,上面注释那行输入也可以
        Check(s);
        cout << ans << endl;
        return 0;
    }
    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    vs2015调试慢
    阿里正式发布《Java开发手册》终极版!
    为什么听有些人讲话让人抓狂
    hibernate 映射实例 学生 课程 成绩
    hibernate 树状映射
    hibernate 一对多双向的CURD
    hibernate 多对多双向关联
    hibernate 多对多单向
    hibernate 一对多双向
    hibernate 一对多关联
  • 原文地址:https://www.cnblogs.com/itdef/p/14399497.html
Copyright © 2011-2022 走看看