Leetcode:最長回文子串

題目鏈接:5. 最長回文子串 - 力扣(LeetCode)

普通版本(暴力枚舉)

解題關鍵:

1、記錄最長回文字串的長度和起始字符的下標

2、判斷回文字串的邏輯與整體邏輯分離

3、先確定尋找回文字串的邊界范圍后從兩邊向中間尋找

class Solution {
public://從兩側向中間尋找string longestPalindrome(string s) {int sz = s.size();if(sz < 2) return s;int lengthMax =  1;//當前最長回文字串的起始長度int begin = 0;//當前最長回文字串的起始下標for(int i = 0;i<sz-1;i++)//回文不可能到數組末尾,因為如果這樣的話{for(int j = i + 1;j<sz ;j++){//判斷[i,j]范圍內的子串是不是回文子串,如果是,且回文字串的長度大于之前記錄的范圍內的子串是不是回文子串,如果是,且回文字串的長度大于之前記錄的lengthhMax,就更新lengthMax和回文子串的下標i,就更新lengthMax和回文子串的下標iif(j - i + 1 > lengthMax  && judgeLPS(s,i,j))//LPS是最長回文子串Longest palindromic substring的縮寫{lengthMax = j - i + 1;begin = i; }}}return s.substr(begin,lengthMax);
}private:bool judgeLPS(const string& s,int left,int right)//防止字符串過長導致的超出內存限制問題,傳引用傳參進行判斷{while(left < right){if(s[left] != s[right]){return false;}else{left++;right--;}}return true;//在[i,j]范圍內都相同了就返回真}
};

時間復雜度:O(N^3)(兩層for循環中還有一個while)

優化版本(中心擴散,待補充)

優化版本(動態規劃,待補充)

~over~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19815.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19815.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19815.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

解析Java中1000個常用類:CharSequence類,你學會了嗎?

在 Java 編程中,字符串操作是最常見的任務之一。為了提供一種靈活且統一的方式來處理不同類型的字符序列,Java 引入了 CharSequence 接口。 通過實現 CharSequence 接口,各種字符序列類可以提供一致的 API,增強了代碼的靈活性和可擴展性。 本文將深入探討 CharSequence 接…

NBM 算法【python,算法,機器學習】

樸素貝葉斯法&#xff08;Naive Bayes model&#xff09;是基于貝葉斯定理與特征條件獨立假設的分類方法。 貝葉斯定理 P ( A ∣ B ) P ( B ∣ A ) ? P ( A ) P ( B ) P(A|B)\frac{P(B|A) * P(A)}{P(B)} P(A∣B)P(B)P(B∣A)?P(A)? 其中A表示分類&#xff0c;B表示屬性&…

Unity中的MVC框架

基本概念 MVC全名是Model View Controller 是模型(model)-視圖(view)-控制器(controller)的縮寫 是一種軟件設計規范&#xff0c;用一種業務邏輯、數據、界面顯示 分離的方法組織代碼 將業務邏輯聚集到一個部件里面&#xff0c;在改進和個性化定制界面及用戶交互的同時&#x…

【嵌入式硬件】DRV8874電機驅動

目錄 1 芯片介紹 1.1 特性簡介 1.2 引腳配置 1.3 最佳運行條件 2 詳細說明 2.1 PMODE配置控制模式 2.1.1 PH/EN 控制模式 2.1.2 PWM 控制模式 2.1.3 獨立半橋控制模式 2.2 電流感測和調節 2.2.1 IPROPI電流感測 2.2.2 IMODE電流調節 3.應用 3.1設計要求 3.2 設計…

AI換臉FaceFusion一鍵云部署指南

大家好&#xff0c;從我開始分享到現在&#xff0c;收到很多朋友的反饋說配置很低玩不了AI。本篇是一個云端部署AI項目的指南&#xff0c;幫助大家在云端進行AI項目的部署。我會從云平臺的選擇、代碼部署、保存鏡像幾個方面進行詳細的介紹。沒有代碼基礎的小白也不用擔心&#…

exe4j innosetup

exe4j:jdk: 打包時&#xff1a;需要的文件最好放到單獨的一個文件夾下&#xff0c;主機安裝32位jdk,exe4j用32位的。 附帶jre: jre用32位的&#xff08;jdk下的jre&#xff09;可使用X86,X64.用相對路徑。 只打64位時&#xff0c;需要選擇32-bit or 64-bit (generate 64…

樂觀鎖 or 悲觀鎖 你怎么選?

你有沒有聽過這樣一句話&#xff1a;悲觀者正確&#xff0c;樂觀者成功?。那么今天我來分享下什么是樂觀鎖?和悲觀鎖。 樂觀鎖和悲觀鎖有什么區別&#xff0c;它們什么場景會用 樂觀鎖 樂觀鎖基于這樣的假設&#xff1a;多個事務在同一時間對同一數據對象進行操作的可能性很…

fps游戲中如何將矩陣轉換為二維屏幕上的矩形坐標

fps游戲中如何將矩陣轉換為二維屏幕上的矩形坐標 matrix[4][4]: 4x4 矩陣&#xff0c;通常用于3D變換&#xff08;如模型視圖投影矩陣&#xff09;。 float* location: 一個指向位置坐標的指針&#xff0c;表示要轉換的3D位置。 int Window_w, int Window_h: 窗口的寬度和高…

工廠模式詳情

一.介紹工廠模式的用途與特點 工廠方法模式是一種創建型設計模式&#xff0c; 其在父類中提供一個創建對象的方法&#xff0c; 允許子類決定實例化對象的類型。定義工廠方法模式(Fatory Method Pattern)是指定義一個創建對象的接口&#xff0c;但讓實現這個接口的類來決定實例…

Python導出Jira列表

import requests import urllib3 urllib3.disable_warnings() from jira import JIRA import pandas as pd def login_jira(username,password):jira JIRA("https://jira.cn/",basic_auth(username,password))#projectsjira.project(id13)# jqlproject"云鏈-…

基于強化學習的控制率參數自主尋優

1.介紹 針對控制建模與設計場景中控制參數難以確定的普遍問題&#xff0c;提出了一種基于強化學習的控制律參數自主優化解決方案。該方案以客戶設計的控制律模型為基礎&#xff0c;根據自定義的控制性能指標&#xff0c;自主搜索并確定最優的、可狀態依賴的控制參數組合。 可…

unity打包的WebGL部署到IIS問題

部署之后會出錯&#xff0c;我遇到的有以下幾種&#xff1b; 進度條卡住不動 明明已經部署到了IIS上&#xff0c;為什么瀏覽網頁的時候還是過不去或者直接報錯。 進度條卡住不動的問題其實就是wasm和data的錯誤。 此時在瀏覽器上按F12進入開發者模式查看錯誤&#xff08;下圖…

前端知識點雜記

本文章用于記錄前端學習中遇到的瑣碎問題及解決方法&#xff0c;歡迎大家一起學習補充~ 前端如何獲取UUID發送至后端&#xff1f; 1. 命令行下載uuid庫 npm install uuid 2. 工程導入uuid庫 import { v4 as uuidv4 } from "uuid"; 3. 使用方法生成uuid實例 co…

付費工具邏輯

1.付費推廣目的&#xff1a; 傳播信息心理暗示&#xff1b;擴大銷售&#xff0c;指導消費&#xff1b;樹立形象&#xff0c;塑道品牌&#xff1b; 2.付費和免費廣告&#xff1a; 付費主要為了增加曝光&#xff1b;免費廣告一般比付費廣告轉化率高&#xff1b; 3.平臺廣告交…

《Kubernetes部署篇:基于麒麟V10+ARM64架構部署harbor v2.4.0鏡像倉庫》

總結&#xff1a;整理不易&#xff0c;如果對你有幫助&#xff0c;可否點贊關注一下&#xff1f; 更多詳細內容請參考&#xff1a;企業級K8s集群運維實戰 一、環境信息 K8S版本 操作系統 CPU架構 服務版本 1.26.15 Kylin Linux Advanced Server V10 ARM64 harbor v2.4.0 二、部…

chrome谷歌瀏覽器開啟Gemini Nano模型

前提 確保您的操作系統語言設置為英語(美國) 可能還需要將 Chrome 瀏覽器的語言更改為英語(美國)。 下載dev或Canary版本Chrome Chrome Canary Chrome Dev 注意:確認您的版本高于 127.0.6512.0。 其中一個Chrome版本不行就切換另外一個版本 繞過性能檢查 Tab輸入: …

中國美業元宇宙-探索美容行業的未來

隨著科技的不斷進步和數字化轉型的深入&#xff0c;元宇宙作為一種全新的虛擬現實交互平臺&#xff0c;正逐漸成為推動多個行業革新的重要力量。在這種背景下&#xff0c;中國美業也在積極擁抱元宇宙&#xff0c;希望通過這一新興技術為傳統美容行業帶來創新與發展。 #### 中國…

結構體相關習題的補充

結構體相關習題的補充 題目1&#xff1a; 如有以下代碼&#xff1a; struct student {int num;char name[32];float score; }stu;則下面的敘述不正確的是&#xff1a;( ) A.struct 是結構體類型的關鍵字 B.struct student 是用戶定義的結構體類型 C.num, score 都是結構體…

正邦科技(day4)

燒錄 一、燒錄固件二、 通訊模塊升級1&#xff1a;USB的方式升級固件2&#xff1a;通過mqtt的方式升級固件3&#xff1a;切換環境 三、 燒錄WiFi1&#xff1a;短接2&#xff1a;燒錄腳本 設備注意事項&#xff1a; 第一種方式&#xff1a;通信模組和MCU都可以統一燒錄BoodLoade…

Oracle Hint /*+APPEND*/插入性能總結

oracle append用法 Oracle中的APPEND用法主要用于提高數據插入的效率。 基本用法&#xff1a;在使用了APPEND選項后&#xff0c;插入數據會直接加到表的最后面&#xff0c;而不會在表的空閑塊中插入數據。這種做法不需要尋找freelist中的free block&#xff0c;從而避免了在…