LeetCode 解题报告 - 5. Longest Palin

2016-10-10  本文已影响0人  秋名山菜车手

对 hard 类型的题,表示目前实在是 hold 不住,暂时先不刷啊。等我刷完 easy 和 medium 回头再战! 2016/10/10
编程语言是 Java,代码托管在我的 GitHub 上,包括测试用例。欢迎各种批评指正!

<br />

题目 —— Longest Palindromic Substring

Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 10000, and there exists one unique longest palindromic substring.

<br >

解答

public class Solution {
    
    private int maxLen;
    
    private int low;
    
    public String longestPalindrome(String s) {
        if (s.length() < 2) {
            return s;
        }
        for (int i = 0; i < s.length()-1; i++) {
            extendPalindrome(s, i, i);
            extendPalindrome(s, i, i+1);
        }
        return s.substring(low, low + maxLen);
    }
    
    public void extendPalindrome(String s, int i, int j) {
        while (i >= 0 && j < s.length() && s.charAt(i) == s.charAt(j)) {
            i--;
            j++;
        }
        if (maxLen < j - i - 1) {
            maxLen = j - i - 1;
            low = i + 1;
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读