When I try to solve an algorithm problem, I find that my golang code needs to take the negative index of the string, which generates an error, so what do I do?
func FindLongestPalindrom(s string) string {
if len(s) == 1 || s == reverseString(s) {
return s
}
max_len :=1
start :=0
for i:= 1;i<len(s);i++{
even := s[i-max_len:i+1]
odd := s[i-max_len-1 : i+1]
if i-max_len-1 >= 0 && odd == reverseString(odd){
start = i-max_len-1
max_len +=2
}
if i-max_len >=0 && even == reverseString(even){
start = i- max_len
max_len += 1
}
}
return s[start:start+max_len]
}
func reverseString(s string) string {
runes := []rune(s)
for from, to := 0, len(runes)-1; from < to; from, to = from+1, to-1 {
runes[from], runes[to] = runes[to], runes[from]
}
return string(runes)
}