演算法與資料結構第三次作業 棧

2022-05-24 18:03:09 字數 2305 閱讀 7583

3.1 括號

★實驗任務

給你乙個長度為 n 的由'('和')'組成的括號序列,你能找出這個序列中最長合法括號子串行麼?合法括號序列是指,在這個序列中,所有的左括號都有唯一的右括號匹配;所有的右括號都有唯一的左括號匹配。例如:((()))()()便是乙個長度為 10 的合法括號序列,而(()))( 則不是。

★資料輸入

輸入只有一行,是乙個長度為 n(1<=n<=10^6)的由'('和')'組成的括號序列。

★資料輸出

輸出兩行。第 1 行表示最長合法括號序列的長度。第 2 行表示最長合法括號序列的個數。

如果沒有合法括號序列輸出 0和 1。

輸入示例1

)((())))(()())
輸出示例1

6

2

輸入示例2

))(
輸出示例2

0

1

第一次由於審題不清,耽誤了好多時間,最後採取了一版比較麻煩的**

#include#includeusing namespace std;

class solution

stackstk;

for (int i = 0; i < n; i++)

else }}

bool flag = false;

int temp = 0;

for (int i = 0; i < n; i++)

else if (cnt[i] == 1)

if (temp > maxans)

else if (temp == maxans)

}return maxans;

}};int main()

else

}

這一種方法參考了力扣的解答。參考位址

#include#includeusing namespace std;

class solution

else

else else if(maxans==i-stk.top())

// maxans = max(maxans, i - stk.top());}}

}return maxans;

}};int main()

else

}

3.9 文件

★實驗任務

tonyy 是乙個word 小白,今天他對 word 中撤銷和恢復功能特別感興趣,玩耍了乙個上午(mdzz~),現在他知道了它們的功能和快捷鍵:

撤銷:ctrl+z,可以撤銷最近 1 次之前的恢復和 input 操作。

恢復:ctrl+y,可以恢復最近1 次之前的撤銷操作,但是 input 操作之前的撤銷操作不能被恢復。

當然,tonyy 還要往裡寫東西,操作格式為 input str(str中不含空格,str長度為m,1=現在他對 word 玩耍了起來,想知道玩耍完的結果,你可以幫助他嗎?

★資料輸入

輸入第一行為乙個正整數 n(0<=n<=10000),表示 tonyy 的操作次數。

接下來 n 行,為上述的操作之一。

其中可能有不合法操作,直接跳過即可。

★資料輸出

輸出 word 中的內容,字串間用空格隔開,如果 word 為空,輸出」no output」

輸入示例1

4

input a

ctrl+z

ctrl+y

input b

輸出示例1

a b
輸入示例2

5

input a

input b

ctrl+z

input d

ctrl+y

輸出示例2

a d
這道題目需要注意的是可能存在連續撤銷的操作,需要儲存的字串不止乙個,不能簡單的用乙個變數儲存撤銷的元素。

#include#include#includeusing namespace std;

int main()

} else if (s == "ctrl+z")

} else if (s == "ctrl+y")

}} if (str.empty())

else

while (!disp.empty())

}}

第三次資料結構作業

a.連續線段 題目描述 給定若干個線段,求最多的首尾相連的線段條數,線段 100 題目解決 我其實不太知道這道題目用現在的知識應該怎麼解?寫了個最短 長 路演算法,floyd那種的,怎麼抽象這個模型呢,就是把每乙個線段都抽象成圖論模型中的乙個點,如果兩條線段首尾相連就給他們倆中間連一條邊長為1的邊,...

第三次作業

2 12有600 mb 兆位元組 的資料,需要從南京傳送到北京。一種方法是將資料寫到磁碟上,然後託人乘火車這 些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率為2.4kb s 傳送此資料。試比較這兩種方法的優劣。若資訊傳送速率為33.6kb s,其結果又如何?解 當傳送速率為2.4k...

第三次作業

1 有600mb 兆位元組 的資料,需要從南京傳送到北京 一種方法是將資料寫到磁碟上,然後託人乘火車將這些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率為2.4kb s 傳送此資料,試比較這兩種方法的優劣。若資訊傳送的速率為33.6kb s,其結果又如何?解 假定連續傳送且不出錯。若...