国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
求解的方法
示例
輸出
動(dòng)態(tài)規(guī)劃方法
結(jié)論
首頁(yè) 后端開(kāi)發(fā) C++ 回文子字符串查詢(xún)?cè)贑++中

回文子字符串查詢(xún)?cè)贑++中

Sep 22, 2023 am 09:05 AM
查詢(xún) 子字符串 回文

回文子字符串查詢(xún)?cè)贑++中

在本教程中,我們需要解決給定字符串的回文子串查詢(xún)。解決回文子串查詢(xún)比解決 C++ 中的常規(guī)查詢(xún)復(fù)雜得多。它需要更復(fù)雜的代碼和邏輯。

在本教程中,我們提供了字符串 str 和 Q 個(gè)子字符串 [L...R] 查詢(xún),每個(gè)查詢(xún)都有兩個(gè)值 L 和 R。我們的目標(biāo)編寫(xiě)一個(gè)程序來(lái)解決查詢(xún)以確定 substring[L...R] 是否是回文。我們必須確定在 L 到 R 范圍內(nèi)形成的子串是否是回文來(lái)解決每個(gè)查詢(xún)。例如 -

Let's input "abbbabaaaba" as our input string.
The queries were [3, 13], [3, 11], [5, 8], [8, 12]
It is necessary to determine whether the substring is a plaindrome
A palindrome is "abaaabaaaba" (3, 13) .
It is not possible to write "baaa" as a palindrome [3, 11].
As in [5, 8]: "aaab" cannot be a palindrome.
There is a palindrome in "baaab" ([3, 12]).

求解的方法

樸素方法

這里,我們必須通過(guò)檢查子字符串是否在索引范圍 L 到 R 之間來(lái)查找回文因此,我們需要對(duì)所有的子串查詢(xún)進(jìn)行一一檢查,判斷是否是回文。由于有 Q 個(gè)查詢(xún),每個(gè)查詢(xún)需要 0(N) 時(shí)間來(lái)回答。最壞情況下需要 0(Q.N) 時(shí)間。

示例

#include <bits/stdc++.h>
using namespace std;
int isPallindrome(string str){
   int i, length;
   int flag = 0;
   length = str.length();
   for(i=0;i < length ;i++){
      if(str[i] != str[length-i-1]) {
         flag = 1; break;
      }
   }
   if (flag==1)
      return 1;
   return 0;
}
void solveAllQueries(string str, int Q, int query[][2]){
   for(int i = 0; i < Q; i++){
      isPallindrome(str.substr(query[i][0] - 1, query[i][1] - 1))? cout<<"Palindrome\n":cout<<"Not palindrome!\n";
   }
}
int main() {
   string str = "abccbeba"; int Q = 3;
   int query[Q][2] = {{3, 5}, {5, 7}, {2, 1}};
   solveAllQueries(str, Q, query);
   return 0;
}

輸出

Palindrome
Palindrome
Not palindrome!

動(dòng)態(tài)規(guī)劃方法

使用動(dòng)態(tài)規(guī)劃方法來(lái)解決問(wèn)題是一種有效的選擇。為了解決這個(gè)問(wèn)題,我們需要?jiǎng)?chuàng)建一個(gè) DP 數(shù)組,它是一個(gè)二維數(shù)組,其中包含一個(gè)布爾值,指示 substring[i...j] 是否是 DP[i][j] 的回文。

將創(chuàng)建此 DP 矩陣,并檢查每個(gè)查詢(xún)的所有 L-R 值。

示例

#include <bits/stdc++.h>
using namespace std;
void computeDP(int DP[][50], string str){
   int length = str.size();
   int i, j;
   for (i = 0; i < length; i++) {
      for (j = 0; j < length; j++)
         DP[i][j] = 0;
   }
   for (j = 1; j <= length; j++) {
      for (i = 0; i <= length - j; i++) {
         if (j <= 2) {
            if (str[i] == str[i + j - 1])
               DP[i][i + j - 1] = 1;
         }
         else if (str[i] == str[i + j - 1])
            DP[i][i + j - 1] = DP[i + 1][i + j - 2];
      }
   }
}
void solveAllQueries(string str, int Q, int query[][2]){
   int DP[50][50];
   computeDP(DP, str);
   for(int i = 0; i < Q; i++){
      DP[query[i][0] - 1][query[i][1] - 1]?cout
      <<"not palindrome!\n":cout<<"palindrome!\n";
   }
}
int main() {
   string str = "abccbeba"; int Q = 3;
   int query[Q][2] = {{3, 5}, {5, 7}, {2, 1}};
   solveAllQueries(str, Q, query);
   return 0;
}

輸出

palindrome!
not palindrome!
palindrome!

結(jié)論

在本教程中,我們學(xué)習(xí)了如何使用 C++ 代碼解決回文子串查詢(xún)。我們還可以用java、python和其他語(yǔ)言編寫(xiě)這段代碼。這段代碼是最復(fù)雜、最冗長(zhǎng)的代碼之一?;匚牟樵?xún)比常規(guī)子串查詢(xún)更難,并且需要非常準(zhǔn)確的邏輯。我們希望本教程對(duì)您有所幫助。

以上是回文子字符串查詢(xún)?cè)贑++中的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線(xiàn)人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門(mén)話(huà)題

Laravel 教程
1601
29
PHP教程
1502
276
12306怎么查詢(xún)歷史購(gòu)票記錄 查看歷史購(gòu)票記錄的方法 12306怎么查詢(xún)歷史購(gòu)票記錄 查看歷史購(gòu)票記錄的方法 Mar 28, 2024 pm 03:11 PM

  12306訂票app下載最新版是一款大家非常滿(mǎn)意的出行購(gòu)票軟件,想去哪里就去那里非常方便,軟件內(nèi)提供的票源非常多,只需要通過(guò)實(shí)名認(rèn)證就能在線(xiàn)購(gòu)票,所有用戶(hù)的出行車(chē)票機(jī)票都可以輕松買(mǎi)到,享受不同的優(yōu)惠折扣。還能提前開(kāi)啟預(yù)約搶票,預(yù)約酒店、專(zhuān)車(chē)接送都是可以的,有了它想去哪里就去那里一鍵購(gòu)票,出行更加簡(jiǎn)單方便,讓大家的出行體驗(yàn)更舒服,現(xiàn)在小編在線(xiàn)詳細(xì)為12306用戶(hù)們帶來(lái)查看歷史購(gòu)票記錄的方法?! ?.打開(kāi)鐵路12306,點(diǎn)擊右下角我的,點(diǎn)擊我的訂單  2.在訂單頁(yè)面點(diǎn)擊已支付?! ?.在已支付頁(yè)

MySQL與PL/SQL的異同比較 MySQL與PL/SQL的異同比較 Mar 16, 2024 am 11:15 AM

MySQL與PL/SQL是兩種不同的數(shù)據(jù)庫(kù)管理系統(tǒng),分別代表了關(guān)系型數(shù)據(jù)庫(kù)和過(guò)程化語(yǔ)言的特點(diǎn)。本文將比較MySQL和PL/SQL的異同點(diǎn),并附帶具體的代碼示例進(jìn)行說(shuō)明。MySQL是一種流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),采用結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL)來(lái)管理和操作數(shù)據(jù)庫(kù)。而PL/SQL是Oracle數(shù)據(jù)庫(kù)特有的過(guò)程化語(yǔ)言,用于編寫(xiě)存儲(chǔ)過(guò)程、觸發(fā)器和函數(shù)等數(shù)據(jù)庫(kù)對(duì)象。相同

學(xué)信網(wǎng)如何查詢(xún)自己的學(xué)歷 學(xué)信網(wǎng)如何查詢(xún)自己的學(xué)歷 Mar 28, 2024 pm 04:31 PM

學(xué)信網(wǎng)如何查詢(xún)自己的學(xué)歷?在學(xué)信網(wǎng)中是可以查詢(xún)到自己的學(xué)歷,很多用戶(hù)都不知道如何在學(xué)信網(wǎng)中查詢(xún)到自己的學(xué)歷,接下來(lái)就是小編為用戶(hù)帶來(lái)的學(xué)信網(wǎng)查詢(xún)自己學(xué)歷方法圖文教程,感興趣的用戶(hù)快來(lái)一起看看吧!學(xué)信網(wǎng)使用教程學(xué)信網(wǎng)如何查詢(xún)自己的學(xué)歷一、學(xué)信網(wǎng)入口:https://www.chsi.com.cn/二、網(wǎng)站查詢(xún):第一步:點(diǎn)擊上方學(xué)信網(wǎng)地址,進(jìn)入首頁(yè)點(diǎn)擊【學(xué)歷查詢(xún)】;第二步:在最新的網(wǎng)頁(yè)中點(diǎn)擊如下圖箭頭所示的【查詢(xún)】;第三步:之后在新頁(yè)面點(diǎn)擊【的登陸學(xué)信檔案】;第四步:在登陸頁(yè)面輸入信息點(diǎn)擊【登陸】;

如何使用Oracle 查詢(xún)表是否被鎖? 如何使用Oracle 查詢(xún)表是否被鎖? Mar 06, 2024 am 11:54 AM

標(biāo)題:如何使用Oracle查詢(xún)表是否被鎖?在Oracle數(shù)據(jù)庫(kù)中,表鎖是指當(dāng)一個(gè)事務(wù)正在對(duì)表執(zhí)行寫(xiě)操作時(shí),其他事務(wù)想要對(duì)該表執(zhí)行寫(xiě)操作或者對(duì)表進(jìn)行結(jié)構(gòu)改變(如增加列、刪除行等)時(shí)會(huì)被阻塞。在實(shí)際開(kāi)發(fā)過(guò)程中,我們經(jīng)常需要查詢(xún)表是否被鎖,以便更好地排查和處理相關(guān)問(wèn)題。本文將介紹如何使用Oracle語(yǔ)句查詢(xún)表是否被鎖,并給出具體的代碼示例。要查詢(xún)表是否被鎖,我們

蘋(píng)果手機(jī)怎么查詢(xún)激活日期 蘋(píng)果手機(jī)怎么查詢(xún)激活日期 Mar 08, 2024 pm 04:07 PM

使用蘋(píng)果手機(jī)想要查詢(xún)激活日期,最好的方法是通過(guò)手機(jī)中的序列號(hào)來(lái)查詢(xún),也可以通過(guò)訪(fǎng)問(wèn)蘋(píng)果的官網(wǎng)來(lái)進(jìn)行查詢(xún),通過(guò)連接電腦查詢(xún),下載第三方軟件查詢(xún)。蘋(píng)果手機(jī)怎么查詢(xún)激活日期答:序列號(hào)查詢(xún),蘋(píng)果官網(wǎng)查詢(xún),電腦查詢(xún),第三方軟件查詢(xún)1、用戶(hù)最好的方式就是知道自己手機(jī)的序列號(hào),打開(kāi)設(shè)置通用關(guān)于本機(jī)就可以看到序列號(hào)。2、使用序列號(hào)不僅可以知道自己手機(jī)的激活日期,還可以查看手機(jī)版本,手機(jī)產(chǎn)地,手機(jī)出廠(chǎng)日期等。3、用戶(hù)訪(fǎng)問(wèn)蘋(píng)果的官網(wǎng)找到技術(shù)支持,找到頁(yè)面底部的服務(wù)和維修欄目,里面查看iPhone的激活信息。4、用戶(hù)

Discuz數(shù)據(jù)庫(kù)位置查詢(xún)技巧分享 Discuz數(shù)據(jù)庫(kù)位置查詢(xún)技巧分享 Mar 10, 2024 pm 01:36 PM

論壇是互聯(lián)網(wǎng)上非常常見(jiàn)的網(wǎng)站形式之一,它為用戶(hù)提供了一個(gè)分享信息、交流討論的平臺(tái)。而Discuz是一款常用的論壇程序,相信很多站長(zhǎng)都已經(jīng)非常熟悉了。在進(jìn)行Discuz論壇的開(kāi)發(fā)和管理過(guò)程中,經(jīng)常需要查詢(xún)數(shù)據(jù)庫(kù)中的數(shù)據(jù)來(lái)進(jìn)行分析或處理。在這篇文章中,我們將分享一些查詢(xún)Discuz數(shù)據(jù)庫(kù)位置的技巧,并提供具體的代碼示例。首先,我們需要了解Discuz的數(shù)據(jù)庫(kù)結(jié)構(gòu)

PHP返回一個(gè)字符串在另一個(gè)字符串中開(kāi)始位置到結(jié)束位置的字符串 PHP返回一個(gè)字符串在另一個(gè)字符串中開(kāi)始位置到結(jié)束位置的字符串 Mar 21, 2024 am 10:31 AM

這篇文章將為大家詳細(xì)講解有關(guān)PHP返回一個(gè)字符串在另一個(gè)字符串中開(kāi)始位置到結(jié)束位置的字符串,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。PHP中使用substr()函數(shù)從字符串中提取子字符串substr()函數(shù)可從字符串中提取指定范圍內(nèi)的字符。其語(yǔ)法如下:substr(string,start,length)其中:string:要從中提取子字符串的原始字符串。start:子字符串開(kāi)始位置的索引(從0開(kāi)始)。length(可選):子字符串的長(zhǎng)度。如果未指定,則提

如何查詢(xún)BitTorrent幣最新價(jià)格? 如何查詢(xún)BitTorrent幣最新價(jià)格? Mar 06, 2024 pm 02:13 PM

查詢(xún)BitTorrent幣(BTT)最新價(jià)格BTT是TRON區(qū)塊鏈上的加密貨幣,用于獎(jiǎng)勵(lì)BitTorrent網(wǎng)絡(luò)用戶(hù)分享和下載文件。查找BTT最新價(jià)格的方法如下:選擇一個(gè)可靠的價(jià)格查詢(xún)網(wǎng)站或應(yīng)用程序。一些常用的價(jià)格查詢(xún)網(wǎng)站包括:CoinMarketCap:https://coinmarketcap.com/Coindesk:https://www.coindesk.com/幣安:https://www.binance.com/在網(wǎng)站或應(yīng)用程序中搜索BTT。查看BTT的最新價(jià)格。注意:加密貨幣價(jià)格

See all articles