0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Longest Palindromic Substring

汽車電子技術(shù) ? 來源:神經(jīng)網(wǎng)絡(luò)與強化學習 ? 作者:Jemma Liu ? 2023-03-01 11:28 ? 次閱讀

Description:

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.

Example 1:

Input: "babad"
Output: "bab"
Note: "aba" is also a valid answer.

Example 2:

Input: "cbbd"
Output: "bb"

5. 最長回文子串

給定一個字符串 s,找到 s 中最長的回文子串。你可以假設(shè) s 的最大長度為 1000。

示例 1:

輸入: "babad"

輸出: "bab"

注意: "aba" 也是一個有效答案。

示例 2:

輸入: "cbbd"

輸出: "bb"

今天遇到最長回文這道題,說實話對我來說是有點難度,攻了兩次才攻下來,個人覺得很有紀念意義,寫下來記錄一下。

Solution1: Greedy方法

回文字符串, 是正讀反讀都一樣的字符串。比較直接的方法是在每個字符位置上向前和向后搜索找到回文字符串。其中,對于搜索時需要對奇數(shù)位和偶數(shù)位兩種形式進行探索,奇數(shù)位以當前位置的字符為中心;偶數(shù)位以當前位置和其相鄰一個位置的兩個字符為中心向兩邊拓展。

class Solution:
    def check_Palindrome(self,s,left,right):
        res =''
        while(left>=0 and right <len(s) and s[left] == s[right]):
            if len(res) < len(s[left:right+1]):
                res = s[left:right+1]
            left -= 1
            right += 1
        return res

    def longestPalindrome(self, s: str) -> str:
        l =len(s)
        res = ''
        for i in range(l):
            left = self.check_Palindrome(s,i,i)
            right = self.check_Palindrome(s,i,i+1)
            maxStr = None
            if(len(left)>len(right)):
                maxStr = left
            else:
                maxStr = right

            if(len(maxStr) > len(res)):
                res = maxStr
        return res
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    585

    瀏覽量

    20583
  • 奇數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    1366
  • 偶數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    1720
收藏 人收藏

    評論

    相關(guān)推薦

    Linux Shell系列教程之Shell字符串用法

    :position:length}在$string中, 從位置$position開始提取長度為$length的子串${string#substring}從變量$string的開頭, 刪除最短匹配
    發(fā)表于 08-29 16:01

    VC+MScomm32控件制作串口通訊工具分享!

    string DWORD cSubKeys=0;// number of subkeys DWORD cbMaxSubKey;// longest subkey size DWORD cchMaxClass
    發(fā)表于 09-11 04:37

    c#字符串截取索引超出范圍

    text=“aa0101738f3a02ea”我想兩個兩個的截取出來,buf【0】=aabuf【1】=01...........運行到 buf[n] = text.Substring(i*2, 2);總是有問題出現(xiàn)索引超出范圍。必須為非負值并小于集合大小。請問各位什么原因?qū)е碌?,沒有超出范圍啊
    發(fā)表于 03-13 04:35

    鴻蒙手機計算器開發(fā)練習

    ").show();return;} else if(operators.contains(text.getText().substring(text.length()-1))) {new
    發(fā)表于 06-01 15:38

    【合宙Air551G雙頻定位開發(fā)板試用體驗】用ESP8266聯(lián)網(wǎng)作為服務端顯示坐標

    ;,N"); dongjing = incomingByte.substring(dongjing_x + 1, dongjing_x + 12); beiwei
    發(fā)表于 03-30 01:58

    【DFRobot Beetle ESP32-C3開發(fā)板試用體驗】車載導航天氣掛件?

    ; Serial.println(comdata); int ic=comdata.indexOf('*'); String tmp=comdata.substring(1,ic
    發(fā)表于 07-04 14:53

    為什么無法將長度為700的字符串發(fā)送到手機?

    );request_fromApp += request_onWiFi.substring(untill1 + 2, untill2);request_fromApp += (","
    發(fā)表于 02-23 06:11

    使用Arduino SDK進行編碼并將代碼ESP8266和ESP32,代碼不工作是怎么回事?

    ;tO = WiFi.localIP().toString().length()+1;nodeFour = WiFi.localIP().toString().substring(froM, tO).c_str();
    發(fā)表于 02-24 08:26

    Arduino 1.8.5 IDE中使用ESP8266-07代碼奔潰的原因?怎么解決?

    ;battery") != -1){ val1 = req.substring(14, 19); val2 = req.substring(21, 26); val3 = req.substring(28
    發(fā)表于 02-24 08:04

    esp8266發(fā)送數(shù)據(jù)后MDNS停止響應的原因 ?

    =") != -1){ Serial.print(req.substring(2,5)); Serial.println(req.substring(7,11));//Serial.println
    發(fā)表于 02-28 08:42

    Wifi需要很長時間才能連接怎么處理?

    = file.readStringUntil(\\\'\\\\n\\\'); if(s.startsWith(\\\"ssid\\\")) {wifi_ssid=s.substring
    發(fā)表于 05-15 07:51

    把帶有外部按鈕的Sonoff Th16放在盒子里,可以訪問Wifimanager的門戶以輸入新密碼?

    ;]; switchOffMin = sr.substring(11,13).toInt()*60 + sr.substring(14,16).toInt(); switchOffMin
    發(fā)表于 05-30 08:22

    C語言算法分析:求最長的遞增數(shù)列

    求最長的遞增數(shù)列(Longest Increasing sequence, LIS)是一個比較常見的問題。
    的頭像 發(fā)表于 06-22 14:57 ?3242次閱讀
    C語言算法分析:求最長的遞增數(shù)列

    Longest Substring no Repeat Characters

    首先對于查詢是否存在的操作我們選擇用dict來做(hash速度快), 對整個字符串進行遍歷 用dict字典中存儲已經(jīng)訪問過的數(shù)據(jù). 對于未存在于dict中的元素直接添加key:value為s[i]:i; 當遇到已經(jīng)存在的元素更新start的位置為dict[s[i]]的下一位, 因為dict中的值仍然保留start之前的數(shù)元素, 所以遇到的存在元素未必是有效的, 需要對start的更新值進行判斷start = max(start, dct[s[i]] + 1). 最后更字典和最大長度即可
    的頭像 發(fā)表于 03-01 13:37 ?440次閱讀

    如何使用JDK截斷一個字符串

    目標。 使用JDK截斷一個字符串 Java提供了許多方便的方法來截斷一個 String 。讓我們來看看。 使用 String 的 substring() 方法 String 類有一個方便的方法,叫做
    的頭像 發(fā)表于 10-08 15:43 ?559次閱讀