LeetCode-Longest Palindromic Substring

来源:互联网 发布:otg功能软件下载 编辑:程序博客网 时间:2024/06/10 06:44

Problem:

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

My Answer:

public class LongestPalindromicSubstring {    private int maxLength = 1;    private int maxIndex = 0;    public String longestPalindrome(String s) {        int length = s.length();        for (int i = 0; i < s.length(); i++) {            evenSubString(s, length, i);            oddSubString(s, length, i);        }        return s.substring(maxIndex, maxIndex + maxLength);    }    public void oddSubString(String s, int length, int i) {        //从第一数为基准开始找奇子串aba        int n = i - 1;        int m = i + 1;        while (n >= 0 && m < length && s.charAt(n) == s.charAt(m)) {            if (m - n + 1 > maxLength) {//记录最大的长度和开始的下标                maxLength = m - n + 1;                maxIndex = n;            }            n--;            m++;        }    }    public void evenSubString(String s, int length, int i) {        //从第一数为基准开始找偶子串bb        int n = i;        int m = i + 1;        while (n >= 0 && m < length && s.charAt(n) == s.charAt(m)) {            if (m - n + 1 > maxLength) {//记录最大的长度和开始的下标                maxLength = m - n + 1;                maxIndex = n;            }            n--;            m++;        }    }    public static void main(String[] args) {        // TODO Auto-generated method stub        LongestPalindromicSubstring substring = new  LongestPalindromicSubstring();        System.out.println(substring.longestPalindrome("caabbaacf"));    }}

Submission Details

这里写图片描述

0 0
原创粉丝点击