[閒聊] 每日leetcode 75 - Day10

作者: yam276 ('_')   2025-06-12 15:19:10
394. Decode String
題目:
給你像是 2[a[2b]] 的格式
你要列出解壓後的文字
2[a[2b]] = abbabb
思路:
你會需要類似狀態機的迴圈
有幾種狀態
1. 數字
2. [
3. ]
4. 字母
數字就每次 *10 加上去
[ 要把目前數字字母放進 stack
] 要更新結果 = 現有字串 + 新解壓字串
字母就直接放進結果
優先度 1 > 2 > 3 > 4
所以第四種的字母一定是獨立不需要解壓的
Code:
impl Solution {
pub fn decode_string(s: String) -> String {
let mut num = 0;
let mut str = String::new();
let mut stack = Vec::new();
for c in s.chars() {
if c.is_digit(10) {
num = num * 10 + c.to_digit(10).unwrap();
} else if c == '[' {
stack.push((num, str.clone()));
str.clear();
num = 0;
} else if c == ']' {
let (repeat, prev_str) = stack.pop().unwrap();
str = prev_str + &str.repeat(repeat as usize);
} else {
str.push(c);
}
}
str
}
}
作者: oin1104 (是oin的說)   2025-06-12 15:22:00
我快哭了 你怎麼每天都這麼認真 我好崇拜你
作者: yam276 ('_')   2025-06-12 15:24:00
你把玩PY的時間拿去刷題就能刷很多了

Links booklink

Contact Us: admin [ a t ] ucptt.com