LeetCode 5. Longest Palindromic Substring

来源:互联网 发布:qq飞车终极迈凯轮数据 编辑:程序博客网 时间:2024/05/17 04:03

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"

Subscribe to see which companies asked this question.

在一个字符串中找到最长的对称子串

public class Solution {    public String longestPalindrome(String s) {        int len = s.length();        if(len<=1){            return s;        }        int max = 0;        int j = 0;        String ans = "";        for(int i=0;i<len;i++){            for(int m=i-1,n=i+1;;m--,n++){                if(m>=0&&n<len){                    if(s.charAt(m)==s.charAt(n)){                        continue;                    }                }                if(2*(i - m) - 1>max){                    j = m+1;                    max = 2*(i - m) - 1;                }                break;            }            for(int k=i,l=i+1;;k--,l++){                if(k>=0&&l<len){                    if(s.charAt(k)==s.charAt(l)){                        continue;                    }                }                if(2*(i-k)>max){                    j = k+1;                    max = 2*(i-k);                }                break;            }        }        return s.substring(j,j+max);    }}
思路分为两步1.以当前点为对称中心向两边扩展   2.以当前点为两个最内部对称点的左侧点(看了时间更短的代码,其实没必要分开,浪费了一些时间)

0 0
原创粉丝点击