在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

算法與數據結構 ? 來源:代碼隨想錄 ? 作者:代碼隨想錄 ? 2022-07-10 17:24 ? 次閱讀
這種匹配(消除)問題也是棧的擅長所在!

844.比較含退格的字符串

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

注意:如果對空文本輸入退格字符,文本繼續為空。 示例 1:

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

示例 2:

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

示例 3:

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

示例 4:

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

思路

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

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

這道題目一看就是要使用棧的節奏,這種匹配(消除)問題也是棧的擅長所在,跟著一起刷題的同學應該知道,在棧與隊列:匹配問題都是棧的強項,我就已經提過了一次使用棧來做類似的事情了。

那么本題,確實可以使用棧的思路,但是沒有必要使用棧,因為最后比較的時候還要比較棧里的元素,有點麻煩

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

代碼如下:

classSolution{
public:
boolbackspaceCompare(stringS,stringT){
strings;//當棧來用
stringt;//當棧來用
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;//直接比較兩個字符串是否相等,比用棧來比較方便多了
returnfalse;
}
};
  • 時間復雜度:O(n + m), n為S的長度,m為T的長度 ,也可以理解是O(n)的時間復雜度
  • 空間復雜度:O(n + m)

當然以上代碼,大家可以發現有重復的邏輯處理S,處理T,可以把這塊公共邏輯抽離出來,代碼精簡如下:

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);
}
};

性能依然是:

  • 時間復雜度:O(n + m)
  • 空間復雜度:O(n + m)

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

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

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

動畫如下:

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

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

代碼如下:

classSolution{
public:
boolbackspaceCompare(stringS,stringT){
intsSkipNum=0;//記錄S的#數量
inttSkipNum=0;//記錄T的#數量
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同時遍歷完畢
if(i==-1&&j==-1)returntrue;
returnfalse;
}
};
  • 時間復雜度:O(n + m)
  • 空間復雜度:O(1)
審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 字符串
    +關注

    關注

    1

    文章

    585

    瀏覽量

    20619
  • 代碼
    +關注

    關注

    30

    文章

    4841

    瀏覽量

    69180
  • 編輯器
    +關注

    關注

    1

    文章

    807

    瀏覽量

    31328

原文標題:比較含退格的字符串

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    N2O(一氧化二氮)氣體和紅外N2O(一氧化二氮)氣體傳感器

    本文聚焦一氧化二氮(N?O,俗稱笑氣)。自然環境中,土壤微生物活動及海洋浮游生物等產生 N?O ,海洋釋放量約占全球自然源排放總量三分之一。但因農業、化石燃料燃燒等人類活動排放,
    的頭像 發表于 01-22 14:45 ?169次閱讀
    <b class='flag-5'>N2O</b>(一氧化二氮)氣體和紅外<b class='flag-5'>N2O</b>(一氧化二氮)氣體傳感器

    AI時代下芯片復雜度飆升,思爾芯國產硬件仿真加速芯片創新

    引言在人工智能(AI)技術蓬勃發展的今天,芯片的復雜度正以前所未有的速度飆升,輕松跨越了百億邏輯門級別的大關。這一趨勢不僅推動了半導體行業的快速發展,也對硬件仿真系統提出了更高的挑戰和要求。在近日
    的頭像 發表于 12-27 18:01 ?471次閱讀
    AI時代下芯片<b class='flag-5'>復雜度</b>飆升,思爾芯國產硬件仿真加速芯片創新

    芯片設計復雜度劇增,紫光芯片云 3.0 助力企業搭建專業設計環境

    。 ? 實際上,國內中小IC設計企業居多,而如今他們面臨更加復雜的設計需求。隨著芯片制程和規模要求不斷提高,芯片設計環境所需資源越來越大,設計環境構建更加復雜,初創企業如何搭建設計環境,中小企業如何在人員經驗欠缺的情況下完成有效布局,又如
    的頭像 發表于 12-26 17:04 ?975次閱讀
    芯片設計<b class='flag-5'>復雜度</b>劇增,紫光芯片云 3.0 助力企業搭建專業設計環境

    DoIP協議簡介及主要功能

    隨著汽車的智能化和網聯化,車載電子系統的復雜度不斷增加,對數據通信的帶寬需求越來越大,通信速度要求也越來越高。借助于傳統因特網的成熟技術,引入到車載網絡得以解決當前的通信需求,通過對傳統以太網的技術
    的頭像 發表于 11-13 15:35 ?866次閱讀
    DoIP協議<b class='flag-5'>棧</b>簡介及主要功能

    熱真空試驗箱 空間環境地面模擬試驗設備

    產品用途:空間環境地面模擬試驗設備用于軍工和航天產品在地面環境中模擬太空的真空、冷黑和太陽輻射的環境,進行熱真空試驗和熱平衡試驗。空間環境地面模擬
    的頭像 發表于 11-01 11:16 ?215次閱讀
    熱真空試驗箱 <b class='flag-5'>空間</b>環境地面<b class='flag-5'>模擬</b>試驗設備

    線程分配惹的禍?系統異常這樣解決!

    ,尤其當項目規模擴大、代碼復雜度增加時,各種“難以捉摸”的bug便會頻繁出現,令工程師們一頭霧水,不知從何入手。這些問題可能涉及內存管理、任務調度、溢出等復雜
    的頭像 發表于 10-31 08:08 ?1043次閱讀
    線程<b class='flag-5'>棧</b>分配惹的禍?系統異常這樣解決!

    時間復雜度O(n^2) 的排序算法

    作者:京東保險 王奕龍 對于小規模數據,我們可以選用時間復雜度O(n2) 的排序算法。因為時間復雜度并不代表實際代碼的執行時間,它省去了低階、系數和常數,僅代表的增長趨勢,所以在小
    的頭像 發表于 10-19 16:31 ?1269次閱讀
    時間<b class='flag-5'>復雜度</b>為 <b class='flag-5'>O</b>(<b class='flag-5'>n</b>^2) 的排序算法

    PCB與PCBA工藝復雜度的量化評估與應對措施

    一站式PCBA智造廠家今天為大家講講PCBA工藝復雜嗎?PCBA工藝的復雜性應對PCBA工藝復雜性的措施。在電子制造領域,PCBA工藝是至關重要的環節。盡管對許多人來說,PCBA工藝可能看似
    的頭像 發表于 09-13 09:21 ?495次閱讀

    業務復雜度治理方法論--十年系統設計經驗總結

    一、復雜度綜述 1、什么是復雜度 軟件設計的核心在于降低復雜性。 --《軟件設計的哲學》 業界對于復雜度并沒有統一的定義, 斯坦福教授John Ousterhout從認知負擔和工作量方
    的頭像 發表于 09-05 14:11 ?1078次閱讀
    業務<b class='flag-5'>復雜度</b>治理<b class='flag-5'>方法</b>論--十年系統設計經驗總結

    CISC(復雜指令集)與RISC(精簡指令集)的區別  

    復雜度, 將復雜性交給編譯器。舉一個例子,CISC提供的乘法指令,調用時可完成內存a和內存b中的兩個數相乘,結果存入內存a ,需要多個CPU周期才可以完成;而RISC不提供“一站式”的乘法指令,需
    發表于 07-30 17:21

    復雜電磁環境模擬系統設計方案

    智慧華盛恒輝復雜電磁環境模擬系統的設計方案是一個綜合性的工程任務,涉及多個方面的考慮和技術實現。以下是一個基于現有技術和應用需求的設計方案概述: 智慧華盛恒輝系統目標 復雜電磁環境模擬
    的頭像 發表于 07-17 17:06 ?542次閱讀

    PCB與PCBA工藝復雜度的量化評估與應用初探!

    , 不知道如何區分普通和復雜的PCB和 PCBA的設計,并采用什么樣的方式來處理。 基于上述考慮, 我們參考了業 界已有的作法, 設計了一個PCB 和 PCBA的工藝復雜度計算公式以解決這 方面
    發表于 06-14 11:15

    模擬示波器和模擬萬用表的區別

    在電子測量領域,模擬示波器和模擬萬用表是兩種常用的工具,它們各自具有獨特的功能和用途。本文將對模擬示波器和模擬萬用表進行詳細比較,從工作原理、使用場景、操作
    的頭像 發表于 05-15 18:07 ?648次閱讀

    軟件可配置模擬 I/O 的設計理念

    作者: Kenton Williston 曾幾何時,模擬 I/O 就是最專業、功能最固定的硬件。例如,電流驅動器和電壓傳感器是完全不同的零件,試圖顛倒其角色可謂是荒謬至極。 軟件可配置模擬 I/
    的頭像 發表于 05-05 11:10 ?982次閱讀
    軟件可配置<b class='flag-5'>模擬</b> I/<b class='flag-5'>O</b> 的設計理念

    gis中常用的空間分析方法

    GIS中常用的空間分析方法 GIS(地理信息系統)是一種用于收集、存儲、處理、分析和展示地理數據的技術。空間分析是GIS的核心部分,它包括一系列方法和技術,用來研究地理
    的頭像 發表于 02-25 13:44 ?6166次閱讀
    主站蜘蛛池模板: 秋霞特色大片18入口私人高清 | 黄色伊人网 | 最好免费高清视频观看韩国 | 大尺度视频在线 | 国产男人女人做性全过程视频 | 亚洲一区二区三区免费在线观看 | 午夜免费啪 | аⅴ天堂中文在线网 | 亚洲偷图色综合色就色 | 亚洲色图日韩精品 | xxxxxhd69日本护士 | 天天色天天操天天 | 女毛片 | 在线观看国产三级 | 色老板女色狠xx网 | 51xx嘿嘿午夜 | 在线观看二区三区午夜 | 亚洲性后网 | 夜夜五月天 | 天天做夜夜爽 | 一级毛片真人免费观看 | 一级看片免费视频 | 99午夜高清在线视频在观看 | 色色激情网| 欧美成人久久 | 久操福利视频 | 国产重口老太和小伙乱视频 | 国模吧双双大尺度炮交gogo | 欧美一级做一级做片性十三 | 亚洲春色在线 | 欧美在线精品一区二区三区 | 中文天堂在线观看 | 种子在线搜索bt | 日韩免费三级电影 | 日本人xxxxxxxxx69 | 欧美videosex性欧美成人 | 四虎影视大全免费入口 | 午夜影院在线观看 | 亚洲国产综合视频 | 久久久久久噜噜噜久久久精品 | 天堂中文在线资源库用 |