我正在将以前在 Python 中解决的问题的代码转换为 Go 并遇到运行时错误:索引超出范围 [1],此行中的长度为 1
if string(s[i]) == ")" && arr[len(s) - 1] == "("{
这是完整的代码。
func isValid(s string) bool {
arr := make([]string, 0)
if len(s) < 2 {
return false
}
for i := 0; i < len(s); i++ {
if string(s[i]) == "(" || string(s[i]) == "[" || string(s[i]) == "{" {
arr = append(arr, string(s[i]))
} else if string(s[i]) == ")" || string(s[i]) == "]" || string(s[i]) == "}" {
if len(arr) >= 1 {
if string(s[i]) == ")" && arr[len(s) - 1] == "("{
arr = arr[:len(arr) -1]
} else if string(s[i]) == "]" && arr[len(s) - 1] == "[" {
arr = arr[:len(arr) -1]
} else if string(s[i]) == "}" && arr[len(s) - 1] == "{" {
arr = arr[:len(arr) -1]
} else {
return false
}
}else {
return false
}
}
}
if reflect.DeepEqual(arr, []string{""}) {
return true
} else {
return false
}
}
问题的原因是什么?
繁花不似锦
开满天机
随时随地看视频慕课网APP
相关分类