代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
@param s string字符串
@return bool布尔型
这是根据其中一个C的改写的代码
即:从左往右遍历,把星号视为左括号,在遍历的过程中如果出现左括号数量比右括号少,表示该字符串不合法,返回false;
从右往左遍历,把星号视为右括号,在遍历的过程中如果出现右括号数量比左括号少,表示该字符串不合法,返回false。
两次遍历均通过,说明该字符串合法,返回true。
class Solution:
def isValidString(self , s: str) -> bool:
# write code here
n = len(s)
flag = 0
for i in range(n):
if s[i] == ')':
flag -= 1
if flag < 0:
return False
else:
flag += 1
flag = 0
for i in range(n-1,-1,-1):
if s[i] == '(':
flag -= 1
if flag < 0:
return False
else:
flag += 1
return True