#439
Medium Algorithms Ternary expression parser
String Stack Recursion
62.6% acceptance
Mar 31, 2026
514
74
No description available.
Solution
Rust
Time O(2^n)
Space O(n)
impl Solution {
pub fn parse_ternary(expression: String) -> String {
let bytes = expression.as_bytes();
fn parse(bytes: &[u8], i: &mut usize) -> u8 {
let c = bytes[*i];
*i += 1;
if *i < bytes.len() && bytes[*i] == b'?' {
*i += 1; // skip '?'
let t = parse(bytes, i);
*i += 1; // skip ':'
let f = parse(bytes, i);
if c == b'T' { t } else { f }
} else {
c
}
}
let mut i = 0;
let result = parse(bytes, &mut i);
(result as char).to_string()
}
}