1. 程式人生 > 其它 >python求球面距離

python求球面距離

技術標籤:# 字串處理專題leetcodejava字串

5. 最長迴文子串

給你一個字串 s,找到 s 中最長的迴文子串。

示例 1:

輸入:s = "babad"
輸出:"bab"
解釋:"aba" 同樣是符合題意的答案。

示例 2:

輸入:s = "cbbd"
輸出:"bb"

示例 3:

輸入:s = "a"
輸出:"a"

示例 4:

輸入:s = "ac"
輸出:"a"

提示:

  • 1 <= s.length <= 1000
  • s 僅由數字和英文字母(大寫和/或小寫)組成

思路:

中心擴散法,即用當前的字元,或當前的兩個字元作為中心,不斷左右外擴,比較左右兩邊是否一直相等。

當字串長度為奇數時:

在這裡插入圖片描述

當字串長度為偶數時:

在這裡插入圖片描述

Java程式碼

class Solution {
     //宣告儲存最長迴文子串的變數
        String res = "";
    
    public String longestPalindrome(String s) {
        if(s==null||s.length() == 0) return res;
        //分別以給定字串的每一個字元作為中心,實行中心擴散法
for(int i = 0;i<s.length();i++){ //考慮給定字串長度為奇數和偶數的情況 helper(s,i,i); helper(s,i,i+1); } return res; } public void helper(String s,int left,int right){ while(left >= 0 && right < s.length() && s.
charAt(left)==s.charAt(right)){ left--; right++; } String temp = s.substring(left+1,right); if(res.length() < temp.length()){ res = temp; } } }

在這裡插入圖片描述