题目解析
采用栈辅助法。
pub fn is_valid(s: String) -> bool {
let mut stack = vec!['0'];
for c in s.chars() {
match c {
'(' | '{' | '['=>{
stack.push(c);
},
'}' =>{
if (stack.pop().unwrap() != '{'){
return false;
}
}
')' =>{
if (stack.pop().unwrap() != '('){
return false;
}
},
']' =>{
if (stack.pop().unwrap() != '['){
return false;
}
},
_ =>(),
}
}
return stack.len() == 1;
}
复杂度分析:
时间复杂度: O(n)。
空间复杂度: O(n)。