Leetcode 5 -最長の回分の部分文字列


問題声明


ストリングsを与えられて、sで最も長いpalindromic部分文字列を返してください.

テストケース


例1 :
入力:S =「Babad」
出力:“bab”
注:“ABA”も有効な答えです.
例2 :
入力:S =「CBBD」
出力:「BB」
例3 :
入力:S =「A」
出力: "a "
例4 :
入力:S =「AC」
出力: "a "

制約


1 <= s . length <> 1000
sは数字と英文字だけで構成されています.

コード


class Solution {
    private int resultStart;
    private int resultLength;
    public String longestPalindrome(String s) {
        if (s == null || s.length() == 0) {
            return "";
        }
        if (s.length() == 1)
            return s;
        int length = s.length();
        for (int start=0; start<length-1; start++) {
            widerange(s, start, start);
            widerange(s, start, start+1);
        }
        return s.substring(resultStart, resultStart + resultLength);
    }

    public void widerange(String s, int start, int end) {
        while (start >= 0 && end < s.length() && s.charAt(start) == s.charAt(end)) {
            start -= 1;
            end += 1;
        }
        if (resultLength < end - start - 1) {
            resultLength = end - start - 1;
            resultStart = start + 1;
        }
    }
}

Rohithv 07 / LeetCode


解決されるleetcode問題。


LeetCode


解決されるleetcode問題.
View on GitHub