给定一个只包括
'('
,')'
,'{'
,'}'
,'['
,']'
的字符串s
,判断字符串是否有效。有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 每个右括号都有一个对应的相同类型的左括号。
示例 1:
输入:s = "()" 输出:true示例 2:
输入:s = "()[]{}" 输出:true示例 3:
输入:s = "(]" 输出:false提示:
1 <= s.length <= 104
s
仅由括号'()[]{}'
组成
简单题找找自信,0ms击败100%。
bool isValid(string s) {
vector<int> v;
int idx = 0;
for(int i=0; i<s.length(); i++){
if(s[i] == '(' || s[i] == '[' || s[i] == '{' ){
v.push_back(s[i]);
idx++;
}
else{
if(v.size() == 0) return false;
else if((s[i] == ')' && v[idx-1] == '(') || (s[i] == ']' && v[idx-1] =='[') || (s[i] == '}' && v[idx-1] =='{')){
v.pop_back();
idx--;
}
else{
break;
}
}
}
if(v.size() == 0) return true;
else return false;
}