标签:false solution 出栈 als determine ons strong char example
Given a string containing just the characters ‘(‘
, ‘)‘
, ‘{‘
, ‘}‘
, ‘[‘
and ‘]‘
, determine if the input string is valid.
An input string is valid if:
Note that an empty string is also considered valid.
Example 1:
Input: "()" Output: true
Example 2:
Input: "()[]{}" Output: true
Example 3:
Input: "(]" Output: false
Example 4:
Input: "([)]" Output: false
Example 5:
Input: "{[]}" Output: true
想法:因为最近在学习栈的使用,因而这题使用栈来解决。遍历字符串,如果匹配到相应的(,{,[.就将对应的).],}压入栈中。
如果没有匹配到上述字符,就出栈,看栈顶元素是否与对应的字符相等。
class Solution { public: bool isValid(string s) { std:stack<char> st; for(char i : s){ if(i == ‘(‘){ st.push(‘)‘); }else if(i == ‘[‘){ st.push(‘]‘); }else if(i == ‘{‘){ st.push(‘}‘); } else { if(st.empty()){ return false; }else{ char top = st.top(); st.pop(); if(top != i){ return false; } } } } return st.empty(); } };
标签:false solution 出栈 als determine ons strong char example
原文地址:https://www.cnblogs.com/tingweichen/p/9900308.html