5.Longest Palindromic Substring leetcode java

来源:互联网 发布:产业结构优化理论 编辑:程序博客网 时间:2024/05/29 11:10

题目:

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"
寻找字符串中的最长回文子串

思路:

回文字符串有两种,一种是类似于“aa”以字符之间的间隔为对称轴对称,另一种类似于“aba”以某个字符为对称轴对称,因此对每个字符串应检测的位置有2*length-1个(每个字符,每个间隔),用i遍历一遍,如果i是偶数,表示这个位置是字符,如果i是奇数,表示这个位置是间隔,以此为轴,向左右两边扩展检查。

class Solution {    public String longestPalindrome(String s) {        int len=s.length();if(len==0)return s;String res=s.substring(0, 1);for(int i=0;i<2*len-1;i++) {if(i%2==0) {int j=1;while(i/2-j>=0&&i/2+j<=len-1) {if(s.charAt(i/2-j)!=s.charAt(i/2+j))break;else {if(2*j+1>res.length())res=s.substring(i/2-j, i/2+j+1);}j++;}}else {int j=1;while((i+1)/2-j>=0&&(i-1)/2+j<=len-1) {if(s.charAt((i+1)/2-j)!=s.charAt((i-1)/2+j))break;else {if(2*j>res.length())res=s.substring((i+1)/2-j, (i-1)/2+j+1);}j++;}}}        return res;    }}


类似的题目:


原创粉丝点击