網易2018 解碼字串

2022-06-04 05:45:06 字數 1253 閱讀 4774

解碼字串(c++)

時間限制:c/c++語言1000ms;其他語言3000ms

記憶體限制:c/c++語言65536kb;其他語言589824kb

題目描述:

給出乙個表示式s,該表示式只包括數字、字母及方括號這三種元素。該表示式具有如下規則:數字只會出現在方括號前,它表示方括號內容的重複次數,方括號中的內容可以是普通的字海串,也可以另乙個表示式。請寫一段程式,按照上述規則格輸入的表示式層開成目標字串。

輸入:輸入包含多組測試資料,每組資料為一行,每行資料是乙個合法的高達式s,你不需要對該驗入的合法性進行判斷。

輸出輸出按照上述規則展開的字串。

樣例輸入

e3[2[abc]gh]

e9[xyz]

官輸出eabcabcghabcabcghabcabcgh

exyzxyzxyzxyzxyzxyzxyzxyzxyz

解題思路:

使用棧進棧出

1 #include 2 #include 

3 #include 4 #include 5

using

namespace

std;67

intmain()

825 res.pop();//

彈出『[』

26int i = 1, num = 0;27

while (res.top() >= '

0'&&res.top() <= '

9')//

防止是兩位數字

2833

while (num--)

3438 tempstr = "";//

清空臨時字元39}

4041

else

42 res.push(str[i]);//

入棧43}44

string

restr;

45restr.resize(res.size());

46int i =res.size();

47while (i--)

4852

ans.push_back(restr); 53}

54//

輸出55

for(auto a : ans)

56 cout << a <5758 system("

pause");

59return0;

60 }

解碼字串

表示式s,只包含數字字母以及方括號,該表示式有如下規則 數字只會出現在方括號之前,它表示方括號裡內容的重複次數 按上述規則展開字串 示例1 e3 2 abc gh eabcabcghabcabcghabcabcgh 示例2e9 xyz exyzxyzxyzxyzxyzxyzxyzxyzxyz 示例3...

編碼和解碼字串

設計乙個將字串列表編碼為字串的演算法。已經編碼的字串之後會通過網路傳送同時也會被解碼回到原始的字串列表。請實現encode和decode 樣例1 輸入 lint code love you 輸出 lint code love you 解釋 一種可能的編碼方式為 lint code love you ...

880 索引處的解碼字串

給定乙個編碼字串s。為了找出解碼字串並將其寫入磁帶,從編碼字串中每次讀取乙個字元,並採取以下步驟 現在,對於給定的編碼字串s和索引k,查詢並返回解碼字串中的第k個字母。示例 1 輸入 s leet2code3 k 10輸出 o 解釋 解碼後的字串為 leetleetcodeleetleetcodel...