zoukankan      html  css  js  c++  java
  • Leetcode 5.最长回文子串 动态规划

    /*
     * @lc app=leetcode.cn id=5 lang=cpp
     *
     * [5] 最长回文子串
     *
     * https://leetcode-cn.com/problems/longest-palindromic-substring/description/
     *
     * algorithms
     * Medium (33.99%)
     * Likes:    3590
     * Dislikes: 0
     * Total Accepted:    567.4K
     * Total Submissions: 1.7M
     * Testcase Example:  '"babad"'
     *
     * 给你一个字符串 s,找到 s 中最长的回文子串。
     * 
     * 
     * 
     * 示例 1:
     * 
     * 
     * 输入:s = "babad"
     * 输出:"bab"
     * 解释:"aba" 同样是符合题意的答案。
     * 
     * 
     * 示例 2:
     * 
     * 
     * 输入:s = "cbbd"
     * 输出:"bb"
     * 
     * 
     * 示例 3:
     * 
     * 
     * 输入:s = "a"
     * 输出:"a"
     * 
     * 
     * 示例 4:
     * 
     * 
     * 输入:s = "ac"
     * 输出:"a"
     * 
     * 
     * 
     * 
     * 提示:
     * 
     * 
     * 1 
     * s 仅由数字和英文字母(大写和/或小写)组成
     * 
     * 
     */

    思路:

    labuladong

    子函数为输入s,i,j,从i,j开始判断s[i]==s[j],然后返回子串,主函数遍历字符串,然后分别调用i,i和i,i+1这两种奇数长度和偶数长度的子串查找。

    特别注意,while(i>=0&&j<s.size()&&s[i]==s[ij])这里出while时,i与j都是不符合条件的,因此取字符串时i+1,j-1

    class Solution {
    public:
        string longestPalindrome(string s) {
            string res;
            for(int i=0;i<s.size();++i){
                string s1=palindrome(s,i,i);
                string s2=palindrome(s,i,i+1);
                if(s1.size()>res.size()) res=s1;
                if(s2.size()>res.size()) res=s2;
            }
            return res;
        }
        string palindrome(string s, int i, int j){
            while(i>=0&&j<s.size()&&s[i]==s[j]){
                i--;
                j++;
            }
            return s.substr(i+1,j-i-1);
        }
    };
    联系方式:emhhbmdfbGlhbmcxOTkxQDEyNi5jb20=
  • 相关阅读:
    sqlserver 跟踪标志
    解决ORA-00338,ORA-00312
    oracle SQL性能分析
    高潜力人士和员工
    pymysqlreplication
    Python3操作Excel(写入)
    CentOS7.4 源码安装MySQL8.0
    MySql 时间操作实例
    python+eclipse+pydev开发环境搭建
    MySQL表结构同步工具 mysql-schema-sync
  • 原文地址:https://www.cnblogs.com/zl1991/p/14718177.html
Copyright © 2011-2022 走看看