Golang:
思路:这题是个栈,属于括号匹配的进阶写法,但其实也没啥进阶的
代码如下:
func isValid(S string) bool {
var res []byte
if len(S)%3!=0{
return false
}
for i:=0;i<len(S);i++{
if S[i]=='a'{
res=append(res,'a')
}
if S[i]=='b'{
if len(res)==0 {
return false
}
res=append(res,'b')
}
if S[i]=='c'{
if len(res)<2||res[len(res)-1]!='b'||res[len(res)-2]!='a'{
return false
}
res=res[:len(res)-2]
}
}
if len(res)==0{
return true
}
return false
}
有疑问加站长微信联系(非本文作者)