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

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

回文子字串查詢?cè)贑++中

Sep 22, 2023 am 09:05 AM
查詢 子字串 回文

回文子字串查詢?cè)贑++中

在本教程中,我們需要解決給定字串的回文子字串查詢。解決回文子字串查詢比解決 C 中的常規(guī)查詢複雜得多。它需要更複雜的程式碼和邏輯。

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

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ò)檢查子字串是否在索引範(fàn)圍L 到R 之間來(lái)查找回文因此,我們需要對(duì)所有的子字串查詢進(jìn)行一一檢查,判斷是否是回文。由於有 Q 個(gè)查詢,每個(gè)查詢需要 0(N) 時(shí)間來(lái)回答。最壞情況下需要 0(Q.N) 時(shí)間。

範(fàn)例

#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)題,我們需要建立一個(gè) DP 數(shù)組,它是一個(gè)二維數(shù)組,其中包含一個(gè)布林值,指示 substring[i...j] 是否是 DP[i][j] 的回文。

將建立此 DP 矩陣,並檢查每個(gè)查詢的所有 L-R 值。

範(fàn)例

#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é)中,我們學(xué)習(xí)如何使用 C 程式碼解決回文子字串查詢。我們也可以用java、python和其他語(yǔ)言來(lái)寫這段程式碼。這段程式碼是最複雜、最冗長(zhǎng)的程式碼之一?;匚牟樵儽瘸R?guī)子字串查詢更難,並且需要非常準(zhǔn)確的邏輯。我們希望本教學(xué)對(duì)您有所幫助。

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

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)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

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

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整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276
12306怎麼查詢歷史購(gòu)票紀(jì)錄 查看歷史購(gòu)票紀(jì)錄的方法 12306怎麼查詢歷史購(gòu)票紀(jì)錄 查看歷史購(gòu)票紀(jì)錄的方法 Mar 28, 2024 pm 03:11 PM

12306訂票app下載最新版是一款大家非常滿意的出行購(gòu)票軟體,想去哪裡就去那裡非常方便,軟體內(nèi)提供的票源非常多,只需要通過(guò)實(shí)名認(rèn)證就能在線購(gòu)票,所有用戶的出行車票機(jī)票都可以輕鬆買到,享受不同的優(yōu)惠折扣。還能提前開啟預(yù)約搶票,預(yù)約飯店、專車接送都是可以的,有了它想去哪裡就去那裡一鍵購(gòu)票,出行更加簡(jiǎn)單方便,讓大家的出行體驗(yàn)更舒服,現(xiàn)在小編在線詳細(xì)為12306用戶帶來(lái)查看歷史購(gòu)票記錄的方法。  1.打開鐵路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是兩種不同的資料庫(kù)管理系統(tǒng),分別代表了關(guān)係型資料庫(kù)和過(guò)程化語(yǔ)言的特性。本文將比較MySQL和PL/SQL的異同點(diǎn),並附帶具體的程式碼範(fàn)例進(jìn)行說(shuō)明。 MySQL是一種流行的關(guān)聯(lián)式資料庫(kù)管理系統(tǒng),採(cǎi)用結(jié)構(gòu)化查詢語(yǔ)言(SQL)來(lái)管理和操作資料庫(kù)。而PL/SQL是Oracle資料庫(kù)特有的過(guò)程化語(yǔ)言,用於編寫預(yù)存程序、觸發(fā)器和函數(shù)等資料庫(kù)物件。相同

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

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

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

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

蘋果手機(jī)怎麼查詢啟動(dòng)日期 蘋果手機(jī)怎麼查詢啟動(dòng)日期 Mar 08, 2024 pm 04:07 PM

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

Discuz資料庫(kù)位置查詢技巧分享 Discuz資料庫(kù)位置查詢技巧分享 Mar 10, 2024 pm 01:36 PM

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

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

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

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

查詢BitTorrent幣(BTT)最新價(jià)格BTT是TRON區(qū)塊鏈上的加密貨幣,用於獎(jiǎng)勵(lì)BitTorrent網(wǎng)路用戶分享和下載檔案。尋找BTT最新價(jià)格的方法如下:選擇一個(gè)可靠的價(jià)格查詢網(wǎng)站或應(yīng)用程式。一些常用的價(jià)格查詢網(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