给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串 s
,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 每个右括号都有一个对应的相同类型的左括号。
示例 1:
输入:s = "()" 输出:true
示例 2:
输入:s = "()[]{}" 输出:true
示例 3:
输入:s = "(]" 输出:false
提示:
1 <= s.length <= 104
s
仅由括号'()[]{}'
组成
栈的经典应用
1 class Solution { 2 public: 3 bool isValid(string s) { 4 stack<char> check; 5 map<char,char> mapped; 6 mapped[')']='('; 7 mapped[']']='['; 8 mapped['}']='{'; 9 for (int i=0;i<s.length();++i){ 10 if (s[i]=='('||s[i]=='{'||s[i]=='[') 11 check.push(s[i]); 12 else{ 13 if (check.empty()) 14 return false; 15 if (check.top()!=mapped.find(s[i])->second){ 16 return false; 17 } else{ 18 check.pop(); 19 } 20 } 21 } 22 if (check.empty()) 23 return true; 24 else 25 return false; 26 } 27 };
标签:false,示例,力扣,括号,mapped,20,check From: https://www.cnblogs.com/coderhrz/p/17719379.html