leetcode 字串解碼

2021-10-06 13:55:26 字數 1222 閱讀 5829

給定乙個經過編碼的字串,返回它解碼後的字串。

編碼規則為: k[encoded_string],表示其中方括號內部的 encoded_string 正好重複 k 次。注意 k 保證為正整數。

你可以認為輸入字串總是有效的;輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。

此外,你可以認為原始資料不包含數字,所有的數字只表示重複的次數 k ,例如不會出現像 3a 或 2[4] 的輸入

s = "3[a]2[bc]", 返回 "aaabcbc".

s = "3[a2[c]]", 返回 "accaccacc".

s = "2[abc]3[cd]ef", 返回 "abcabccdcdcdef".

class

solution

//遍歷的標準是在內部遇到0~9之間的數字就開始遍歷(相當於開啟了一次新的字串)

string df

(string s,

int index)

else

}for

(int j=

0;j<

to_int

(num)

;j++

) temp="";

last="";

num="";

}else

else

} i++

; ind=i;}if

(last!=

"") result+=last;

return result;

}int

to_int

(string num)

return result;

}private

:int ind;

};

今天終於沒有參考官方的解答,開心

主要思路就是遞迴,具體思路就是在內遇到數字就開啟下一層的遞迴,因為此時也相當於開啟了新的字串。

注意點如下:

(1)其中可能出現數字位數超過一位數的例如20、30、100等

(2)字串中可能出現2[w]ef3[c],也就是說還會存在沒有數字標註的字串資訊,**中標註了last字串用來記錄

(3)最後就是可能(2)中的ef可能存在在最後幾個字元上,例如示例中的第三個案例,最後要記得判斷。

LeetCode 字串解碼

給定乙個經過編碼的字串,返回它解碼後的字串。編碼規則為 k encoded string 表示其中方括號內部的 encoded string 正好重複 k 次。注意 k 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為原始資料不...

LeetCode 字串解碼(棧輔助)

給定乙個經過編碼的字串,返回它解碼後的字串。編碼規則為 k encoded string 表示其中方括號內部的 encoded string 正好重複 k 次。注意 k 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為原始資料不...

字串解碼

給定乙個經過編碼的字串,返回它解碼後的字串。編碼規則為 k encoded string 表示其中方括號內部的 encoded string 正好重複 k 次。注意 k 保證為正整數。你可以認為輸入字串總是有效的 輸入字串中沒有額外的空格,且輸入的方括號總是符合格式要求的。此外,你可以認為原始資料不...