LeetCode 005 Longest Palindromic Substring

xiaoxiao2021-02-28  36

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.

Example:

Input: "babad" Output: "bab" Note: "aba" is also a valid answer.

 

Example:

Input: "cbbd" Output: "bb" class Solution { public String longestPalindrome(String s) { String res = null; int maxLength = 0, len = s.length(); for(int i = 0; i < len; i++) { if(isPalindromic(s, i - maxLength - 1, i)) { // 减少无意义的搜索 res = s.substring(i - maxLength - 1, i + 1); maxLength += 1; } else if(isPalindromic(s, i - maxLength - 2, i)) { res = s.substring(i - maxLength - 2, i + 1); maxLength += 2; } } if(maxLength == 0) res = s.substring(0, 1); // 注意只有单个字母是回文的情况 return res; } private boolean isPalindromic(String s, int begin, int end) { if(begin < 0) return false; while(begin < end) { if(s.charAt(begin) != s.charAt(end)) return false; begin++; end--; } return true; } }

转载请注明原文地址: https://www.6miu.com/read-2626857.html

最新回复(0)