678. 有效的括号字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/***
看了题解下面的思路,非常便捷,原代码是三目表达式改写成if else了。
“有效的字符串,即从左向右看是有效的,从右向左看也是有效的
如果在遍历过程中,left或者right小于0,则是无效”
***/
class Solution {
public:
bool checkValidString(string s) {
int left = 0;
int right = 0;
for (int i = 0; i < s.length(); ++i) {
if(s[i]==')'){
left--;
}else{
left++;
}
if(s[s.length()-i-1]=='('){ //i从0开始,但是长度是从1开始数,所以-1
right--;
}else{
right++;
}
if (left<0 || right <0) return false;
}
return true;
}
};

678. 有效的括号字符串
https://pisces34.github.io/2021/05/08/leetcode/checkValidString/
发布于
2021年5月8日
许可协议