标签:char hat 而不是 判断字符串 sed 时间 racket ini turn
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
给定一个只包括 ‘(‘
,‘)‘
,‘{‘
,‘}‘
,‘[‘
,‘]‘
的字符串,判断字符串是否有效。
有效字符串需满足:
注意空字符串可被认为是有效字符串。
用栈模拟即可,注意开个map,而不是通过多次判断可以节约时间。
class Solution {
public:
bool isValid(string s) {
bool res = true;
if (s.size() == 0) return res;
map <char, char> mp = { {')','('}, {'}','{'}, {']','['} };
stack<char> st;
for (int i=0; i<s.size(); ++i)
{
if ((s[i] == '(') || (s[i] == '{') || (s[i] == '[') )
st.push(s[i]);
else
{
if (!st.empty() && st.top() == mp[s[i]])
{
st.pop();
}
else
{
res = false;
break;
}
}
}
if (!st.empty())
res = false;
return res;
}
};
[LeetCode]20 Valid Parentheses 有效的括号
标签:char hat 而不是 判断字符串 sed 时间 racket ini turn
原文地址:https://www.cnblogs.com/caomingpei/p/10624915.html