首页 > 代码库 > LeetCode 005 Longest Palindromic Substring - Java
LeetCode 005 Longest Palindromic Substring - Java
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"
定位:中等题
找到给定的字符串中的最长的回文子串,可以采取遍历每一个字符,判断有没有可能以其为中心生成回文字串,一旦可能就向两端扩展。有两种情况,一种是以一个字母为中心,另一种为以两个相同字母为中心,当扩展到极限后记录并判断是不是最长的。
Java实现如下:
1 public class Solution { 2 public String longestPalindrome(String s) { 3 int len=s.length(); 4 if(len<=1){ 5 return s; 6 } 7 int Len=1,maxLen=1; 8 int i,j; 9 String str=String.valueOf(s.charAt(0)); 10 if(s.charAt(0)==s.charAt(1)){ 11 str=s.substring(0,2); 12 maxLen=2; 13 } 14 for(i=1;i<len-1;i++){ 15 if(s.charAt(i-1)==s.charAt(i+1)){ 16 j=1; 17 while(i-j>=0&&i+j<len&&s.charAt(i-j)==s.charAt(i+j)){ 18 j++; 19 } 20 j--; 21 Len=2*j+1; 22 if(Len>maxLen){ 23 maxLen=Len; 24 str=s.substring(i-j,i+j+1); 25 } 26 } 27 if(s.charAt(i)==s.charAt(i+1)){ 28 j=1; 29 while(i-j+1>=0&&i+j<len&&s.charAt(i-j+1)==s.charAt(i+j)){ 30 j++; 31 } 32 j--; 33 Len=2*j; 34 if(Len>maxLen){ 35 maxLen=Len; 36 str=s.substring(i-j+1,i+j+1); 37 } 38 } 39 } 40 return str; 41 } 42 }
LeetCode 005 Longest Palindromic Substring - Java
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。