LeetCode 5. Longest Palindromic Substring

xiaoxiao2021-02-27  138

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.以当前点为两个最内部对称点的左侧点(看了时间更短的代码,其实没必要分开,浪费了一些时间)

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

最新回复(0)