一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

Longest Palindromic Substring

汽車電子技術(shù) ? 來(lái)源:神經(jīng)網(wǎng)絡(luò)與強(qiáng)化學(xué)習(xí) ? 作者: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. 最長(zhǎng)回文子串

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

示例 1:

輸入: "babad"

輸出: "bab"

注意: "aba" 也是一個(gè)有效答案。

示例 2:

輸入: "cbbd"

輸出: "bb"

今天遇到最長(zhǎng)回文這道題,說(shuō)實(shí)話對(duì)我來(lái)說(shuō)是有點(diǎn)難度,攻了兩次才攻下來(lái),個(gè)人覺(jué)得很有紀(jì)念意義,寫下來(lái)記錄一下。

Solution1: Greedy方法

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

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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    589

    瀏覽量

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

    關(guān)注

    0

    文章

    3

    瀏覽量

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

    關(guān)注

    0

    文章

    5

    瀏覽量

    1757
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    :position:length}在$string中, 從位置$position開始提取長(zhǎng)度為$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”我想兩個(gè)兩個(gè)的截取出來(lái),buf【0】=aabuf【1】=01...........運(yùn)行到 buf[n] = text.Substring(i*2, 2);總是有問(wèn)題出現(xiàn)索引超出范圍。必須為非負(fù)值并小于集合大小。請(qǐng)問(wèn)各位什么原因?qū)е碌模瑳](méi)有超出范圍啊
    發(fā)表于 03-13 04:35

    鴻蒙手機(jī)計(jì)算器開發(fā)練習(xí)

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

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

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

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

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

    為什么無(wú)法將長(zhǎng)度為700的字符串發(fā)送到手機(jī)?

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

    使用Arduino SDK進(jìn)行編碼并將代碼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停止響應(yīng)的原因 ?

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

    Wifi需要很長(zhǎng)時(shí)間才能連接怎么處理?

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

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

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

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

    求最長(zhǎng)的遞增數(shù)列(Longest Increasing sequence, LIS)是一個(gè)比較常見(jiàn)的問(wèn)題。
    的頭像 發(fā)表于 06-22 14:57 ?3351次閱讀
    C語(yǔ)言算法分析:求最長(zhǎng)的遞增數(shù)列

    Longest Substring no Repeat Characters

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

    如何使用JDK截?cái)嘁粋€(gè)字符串

    目標(biāo)。 使用JDK截?cái)嘁粋€(gè)字符串 Java提供了許多方便的方法來(lái)截?cái)嘁粋€(gè) String 。讓我們來(lái)看看。 使用 String 的 substring() 方法 String 類有一個(gè)方便的方法,叫做
    的頭像 發(fā)表于 10-08 15:43 ?686次閱讀