小q想要給他的朋友傳送乙個神秘字串,但是他發現字串的過於長了,於是小q發明了一種壓縮演算法對字串中重複的部分進行了壓縮,對於字串中連續的m個相同字串s將會壓縮為[m|s](m為乙個整數且1<=m<=100),例如字串abcabcabc將會被壓縮為[3|abc],現在小q的同學收到了小q傳送過來的字串,你能幫助他進行解壓縮麼?在進行括號匹配時,將符號'|『也當作正常字元先儲存,輸入描述:
輸入第一行包含乙個字串s,代表壓縮後的字串。輸出描述:s的長度<=1000;
s僅包含大寫字母、[、]、|;
解壓後的字串長度不超過100000;
壓縮遞迴層數不超過10層;
輸出乙個字串,代表解壓後的字串。輸入例子1:hg[3|b[2|ca]]f輸出例子1:hgbcacabcacabcacaf例子說明1:hg[3|b[2|ca]]f−>hg[3|bcaca]f−>hgbcacabcacabcacaf
在遇到符號']'時在取出來按照'|'來擷取字串
#include#include#include#include#include#include#includeusing namespace std;
//切割字串並將數字字串轉換成數值
void getnumandstr(string str, int* num, string* res)
else if(flag_ns&& str[i]!= '|')
} *res = r;
int temp = 0;
len = n.length();
for (int i = 0; i < len; i++)
*num = temp;
}int main()
} else if (s[i] == ']')
else
} if (start&& s[i]!= ']')
tostack += s[i];
else if(s[i]!= ']')
cout << s[i];
} return 0;
}
牛客網演算法之遞迴
1.遞迴本質 遞迴很常見應用很廣,常常看到的遞迴 非常簡潔,但是實現強大。遞迴的表現形式是函式自己呼叫自己,有點繞,所以接下用例子講述下計算機怎麼實現遞迴的。最簡單的例子,求乙個陣列的最大值。這個基本方法是不用遞迴的,可以遍歷一遍,但是強制用遞迴實現。思路 把陣列切一半,左半部分求最大值,右半部分求...
牛客網 華為機試 020 牛客網
密碼要求 1.長度超過8位 2.包括大小寫字母.數字.其它符號,以上四種至少三種 3.不能有相同長度超2的子串重複 說明 長度超過2的子串 一組或多組長度超過2的子符串。每組佔一行 如果符合要求輸出 ok,否則輸出ng 示例1 021abc9000 021abc9abc1 021abc9000 02...
演算法 牛客網前端演算法 30 完
1.返回引數 a 和 b 的邏輯且運算結果 function and a,b 2.完成函式 createmodule,呼叫之後滿足如下要求 1 返回乙個物件 2 物件的 greeting 屬性值等於 str1,name 屬性值等於 str2 3 物件存在乙個 sayit 方法,該方法返回的字串為 g...