chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

空間復(fù)雜度O(n)的棧模擬方法

算法與數(shù)據(jù)結(jié)構(gòu) ? 來源:代碼隨想錄 ? 作者:代碼隨想錄 ? 2022-07-10 17:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這種匹配(消除)問題也是棧的擅長(zhǎng)所在!

844.比較含退格的字符串

給定 S 和 T 兩個(gè)字符串,當(dāng)它們分別被輸入到空白的文本編輯器后,判斷二者是否相等,并返回結(jié)果。# 代表退格字符。

注意:如果對(duì)空文本輸入退格字符,文本繼續(xù)為空。 示例 1:

  • 輸入:S = "ab#c", T = "ad#c"
  • 輸出:true
  • 解釋:S 和 T 都會(huì)變成 “ac”。

示例 2:

  • 輸入:S = "ab##", T = "c#d#"
  • 輸出:true
  • 解釋:S 和 T 都會(huì)變成 “”。

示例 3:

  • 輸入:S = "a##c", T = "#a#c"
  • 輸出:true
  • 解釋:S 和 T 都會(huì)變成 “c”。

示例 4:

  • 輸入:S = "a#c", T = "b"
  • 輸出:false
  • 解釋:S 會(huì)變成 “c”,但 T 仍然是 “b”。

思路

本文將給出 空間復(fù)雜度O(n)的棧模擬方法 以及空間復(fù)雜度是O(1)的雙指針方法。

普通方法(使用棧的思路)

這道題目一看就是要使用棧的節(jié)奏,這種匹配(消除)問題也是棧的擅長(zhǎng)所在,跟著一起刷題的同學(xué)應(yīng)該知道,在棧與隊(duì)列:匹配問題都是棧的強(qiáng)項(xiàng),我就已經(jīng)提過了一次使用棧來做類似的事情了。

那么本題,確實(shí)可以使用棧的思路,但是沒有必要使用棧,因?yàn)樽詈蟊容^的時(shí)候還要比較棧里的元素,有點(diǎn)麻煩。

這里直接使用字符串string,來作為棧,末尾添加和彈出,string都有相應(yīng)的接口,最后比較的時(shí)候,只要比較兩個(gè)字符串就可以了,比比較棧里的元素方便一些。

代碼如下:

classSolution{
public:
boolbackspaceCompare(stringS,stringT){
strings;//當(dāng)棧來用
stringt;//當(dāng)棧來用
for(inti=0;iif(S[i]!='#')s+=S[i];
elseif(!s.empty()){
s.pop_back();

}
for(inti=0;iif(T[i]!='#')t+=T[i];
elseif(!t.empty()){
t.pop_back();
}
}
if(s==t)returntrue;//直接比較兩個(gè)字符串是否相等,比用棧來比較方便多了
returnfalse;
}
};
  • 時(shí)間復(fù)雜度:O(n + m), n為S的長(zhǎng)度,m為T的長(zhǎng)度 ,也可以理解是O(n)的時(shí)間復(fù)雜度
  • 空間復(fù)雜度:O(n + m)

當(dāng)然以上代碼,大家可以發(fā)現(xiàn)有重復(fù)的邏輯處理S,處理T,可以把這塊公共邏輯抽離出來,代碼精簡(jiǎn)如下:

classSolution{
private:
stringgetString(conststring&S){
strings;
for(inti=0;iif(S[i]!='#')s+=S[i];
elseif(!s.empty()){
s.pop_back();
}
}
returns;
}
public:
boolbackspaceCompare(stringS,stringT){
returngetString(S)==getString(T);
}
};

性能依然是:

  • 時(shí)間復(fù)雜度:O(n + m)
  • 空間復(fù)雜度:O(n + m)

優(yōu)化方法(從后向前雙指針)

當(dāng)然還可以有使用 O(1) 的空間復(fù)雜度來解決該問題。

同時(shí)從后向前遍歷S和T(i初始為S末尾,j初始為T末尾),記錄#的數(shù)量,模擬消除的操作,如果#用完了,就開始比較S[i]和S[j]。

動(dòng)畫如下:

1abd8eba-f681-11ec-ba43-dac502259ad0.gif

如果S[i]和S[j]不相同返回false,如果有一個(gè)指針(i或者j)先走到的字符串頭部位置,也返回false。

代碼如下:

classSolution{
public:
boolbackspaceCompare(stringS,stringT){
intsSkipNum=0;//記錄S的#數(shù)量
inttSkipNum=0;//記錄T的#數(shù)量
inti=S.size()-1;
intj=T.size()-1;
while(1){
while(i>=0){//從后向前,消除S的#
if(S[i]=='#')sSkipNum++;
else{
if(sSkipNum>0)sSkipNum--;
elsebreak;
}
i--;
}
while(j>=0){//從后向前,消除T的#
if(T[j]=='#')tSkipNum++;
else{
if(tSkipNum>0)tSkipNum--;
elsebreak;
}
j--;
}
//后半部分#消除完了,接下來比較S[i]!=T[j]
if(i0||j0)break;//S或者T遍歷到頭了
if(S[i]!=T[j])returnfalse;
i--;j--;
}
//說明S和T同時(shí)遍歷完畢
if(i==-1&&j==-1)returntrue;
returnfalse;
}
};
  • 時(shí)間復(fù)雜度:O(n + m)
  • 空間復(fù)雜度:O(1)
審核編輯:湯梓紅

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

    關(guān)注

    1

    文章

    596

    瀏覽量

    23154
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4965

    瀏覽量

    73868
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    828

    瀏覽量

    32866

原文標(biāo)題:比較含退格的字符串

文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    DeepSeek開源Engram:讓大模型擁有"過目不忘"的類腦記憶

    Transformer效率瓶頸的關(guān)鍵鑰匙。 傳統(tǒng)Transformer的"記憶困境" 當(dāng)前大語言模型面臨三大結(jié)構(gòu)性問題:注意力計(jì)算的O(n2)復(fù)雜度在長(zhǎng)序列下成為瓶頸;所有知識(shí)隱式存儲(chǔ)在參數(shù)中,檢索常識(shí)需激活
    的頭像 發(fā)表于 01-14 16:07 ?262次閱讀
    DeepSeek開源Engram:讓大模型擁有"過目不忘"的類腦記憶

    電能質(zhì)量在線監(jiān)測(cè)裝置支持密碼復(fù)雜度要求嗎?

    現(xiàn)代電能質(zhì)量在線監(jiān)測(cè)裝置(尤其是中高端型號(hào),適配電網(wǎng)安全要求)普遍支持密碼復(fù)雜度要求 ,且部分裝置會(huì)強(qiáng)制啟用該功能,核心目的是防范弱密碼導(dǎo)致的非法訪問、數(shù)據(jù)篡改或設(shè)備操控風(fēng)險(xiǎn),符合電力行業(yè)信息安全
    的頭像 發(fā)表于 12-12 11:07 ?571次閱讀

    探索ADC0831-N/ADC0832-N/ADC0834-N/ADC0838-N 8位串行I/O A/D轉(zhuǎn)換器

    探索ADC0831-N/ADC0832-N/ADC0834-N/ADC0838-N 8位串行I/O A/D轉(zhuǎn)換器 在電子設(shè)計(jì)領(lǐng)域,A/D轉(zhuǎn)換
    的頭像 發(fā)表于 12-10 10:55 ?577次閱讀

    深入剖析ADC0831-N/ADC0832-N/ADC0834-N/ADC0838-N 8位串行I/O A/D轉(zhuǎn)換器

    深入剖析ADC0831-N/ADC0832-N/ADC0834-N/ADC0838-N 8位串行I/O A/D轉(zhuǎn)換器 在電子工程師的日常工作
    的頭像 發(fā)表于 12-10 10:55 ?545次閱讀

    免停電接線的電能質(zhì)量在線監(jiān)測(cè)裝置的安裝和調(diào)試復(fù)雜嗎?

    免停電接線的電能質(zhì)量在線監(jiān)測(cè)裝置 整體安裝調(diào)試復(fù)雜度較低 ,遠(yuǎn)低于傳統(tǒng)停電接線模式,其中低壓系統(tǒng)可實(shí)現(xiàn) “快速部署、簡(jiǎn)易調(diào)試”,中高壓系統(tǒng)因需專業(yè)工具與資質(zhì),復(fù)雜度略有提升,但仍能通過標(biāo)準(zhǔn)化流程降低
    的頭像 發(fā)表于 12-05 18:00 ?3667次閱讀
    免停電接線的電能質(zhì)量在線監(jiān)測(cè)裝置的安裝和調(diào)試<b class='flag-5'>復(fù)雜</b>嗎?

    程序運(yùn)行慢,是否需檢查算法時(shí)間復(fù)雜度過高?

    程序運(yùn)行慢,需檢查算法時(shí)間復(fù)雜度是否過高?
    發(fā)表于 11-17 08:08

    CT-5156-O與CT-5339-N鐵氧體隔離器

    設(shè)計(jì),滿足通用場(chǎng)景需求,而CT-5339-N可能針對(duì)高頻段(如X/Ku波段)優(yōu)化,在隔離、插入損耗等參數(shù)上表現(xiàn)更優(yōu),適用于對(duì)性能要求嚴(yán)苛的精密場(chǎng)景。性能參數(shù)工作頻段與帶寬CT-5156-O:工作頻段覆蓋
    發(fā)表于 11-13 09:37

    CT-4032-O/CT-4031-N鐵氧體隔離器

    CT-4032-O與CT-4031-N均為UTE Microwave公司生產(chǎn)的鐵氧體隔離器(Ferrite Isolators),其中CT-4032-O配備的是SMA母頭連接器,而CT-4031-
    發(fā)表于 09-23 08:53

    CT-4028-O/CT-4027-N鐵氧體隔離器

    CT-4028-O/CT-4027-N鐵氧體隔離器:Ka波段高性能微波信號(hào)隔離解決方案CT-4028-O/CT-4027-N鐵氧體隔離器是基于鐵氧體材料的微波非互易器件,具備出色的單向
    發(fā)表于 08-12 09:43

    HDI盲埋孔PCB階數(shù)區(qū)分方法解析

    HDI盲埋孔PCB的階數(shù)是區(qū)分其結(jié)構(gòu)復(fù)雜度的關(guān)鍵指標(biāo),主要通過增層次數(shù)、鉆孔工藝及連接層數(shù)來綜合判斷,具體區(qū)分方法如下: 一、基于增層次數(shù)的階數(shù)定義 HDI板結(jié)構(gòu)通常以“a+N+a”或
    的頭像 發(fā)表于 08-05 10:34 ?3514次閱讀
    HDI盲埋孔PCB階數(shù)區(qū)分<b class='flag-5'>方法</b>解析

    太陽光模擬器丨輻照不均勻的定義和標(biāo)準(zhǔn)

    在材料光電性能表征、新能源器件研發(fā)及空間環(huán)境模擬等前沿領(lǐng)域,太陽光模擬器已成為模擬真實(shí)光照環(huán)境的核心工具。輻照不均勻作為衡量太陽光
    的頭像 發(fā)表于 07-24 10:23 ?738次閱讀
    太陽光<b class='flag-5'>模擬</b>器丨輻照不均勻<b class='flag-5'>度</b>的定義和標(biāo)準(zhǔn)

    CT-3046-O\\CT-3045-N鐵氧體環(huán)行器UTE Microwave

    質(zhì)量要求高的場(chǎng)景;CT-3045-N雖然插入損耗較高,但隔離仍能滿足一般應(yīng)用需求。l 功率容量與溫度穩(wěn)定性 CT-3046-O的功率容量更高,溫度穩(wěn)定性更好,適合大功率和高可靠性
    發(fā)表于 05-23 10:06

    ADIN2111集成10BASE-T1L PHY的低復(fù)雜度、2端口以太網(wǎng)交換機(jī)技術(shù)手冊(cè)

    ADIN2111是一款低功耗、低復(fù)雜度、雙以太網(wǎng)端口交換機(jī),它集成了10BASE-T1L PHY和一個(gè)串行外設(shè)接口(SPI)端口。該器件使用低功率受限節(jié)點(diǎn),面向工業(yè)以太網(wǎng)應(yīng)用且符合IEEE
    的頭像 發(fā)表于 05-15 11:41 ?1790次閱讀
    ADIN2111集成10BASE-T1L PHY的低<b class='flag-5'>復(fù)雜度</b>、2端口以太網(wǎng)交換機(jī)技術(shù)手冊(cè)

    VirtualLab Fusion應(yīng)用:多層超表面空間板的模擬

    的同時(shí)使系統(tǒng)盡可能小,解決元件之間的距離問題也是必要的。例如,可以通過將系統(tǒng)折疊起來,利用相同的體積實(shí)現(xiàn)多個(gè)傳播步驟,但這并不是唯一可行的策略。 我們將介紹多層超表面空間板的模擬(由 O. Reshef
    發(fā)表于 04-09 08:51

    CT-3038-O/CT-3037-N鐵氧體環(huán)行器UTE Microwave

    × 1英寸 連接器類型: CT-3038-O:SMA母頭 CT-3037-NN母頭 典型性能指標(biāo): 隔離:最低18 dB 插入損耗:最高0.40 dB 駐波比:最高1.30:1
    發(fā)表于 02-25 10:18