Golang:
思路:栈匹配即可
代码如下:
func minRemoveToMakeValid(s string) string {
var stack []int
bytes:=[]byte(s)
i:=0
for i<len(bytes){
if bytes[i]=='('{
stack=append(stack,i)
}
if bytes[i]==')'{
if len(stack)==0{
bytes=append(bytes[0:i],bytes[i+1:]...)
i--
}else{
stack=stack[:len(stack)-1]
}
}
i++
}
if len(stack)!=0{
for j:=len(stack)-1;j>=0;j--{
bytes=append(bytes[0:stack[j]],bytes[stack[j]+1:]...)
}
}
return string(bytes)
}
有疑问加站长微信联系(非本文作者)