首页 > 其他 > 详细

5. 最长回文子串

时间:2020-05-13 23:47:07      阅读:65      评论:0      收藏:0      [点我收藏+]
  1. 最长回文子串(leetcode 中等题)
    给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

示例 1:

输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。
示例 2:

输入: "cbbd"
输出: "bb"

class Solution {
    public String longestPalindrome(String s) {
        String ans = "";
        for(int i=0;i<s.length();i++){
            String ans1 = palindrome(s,i);
            ans = ans1.length()>ans.length()?ans1:ans;
        }
        for(int i=0;i<s.length();i++){
            String ans2 = palindrome1(s,i);
            ans = ans2.length()>ans.length()?ans2:ans;
        }
        return ans;
    }

    
    public static String palindrome(String s, int index) {
        String ans = s.substring(index, index + 1);
        int i = 1;
        while (index - i >= 0 && index + i < s.length()) {
            if (s.charAt(index - i) == s.charAt(index + i)) {
                ans = s.substring(index - i, index + i + 1);
                i++;
            }else{
                break;
            }
        }
        return ans;
    }

    public static String palindrome1(String s, int index) {
        String ans = s.substring(index, index + 1);
        int i = 1;
        while (index - i + 1 >= 0 && index + i < s.length()) {
            if (s.charAt(index - i + 1) == s.charAt(index + i)) {
                ans = s.substring(index - i + 1, index + i + 1);
                i++;
            } else {
                return ans;
            }
        }
        return ans;
    }
}

5. 最长回文子串

原文:https://www.cnblogs.com/ZCWang/p/12885527.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!