| 123456789101112131415161718192021222324252627282930313233 | import (	"strings")func shortestPalindrome(s string) string {	l := len(s)	if l <= 1 {		return s	}	var i, j int	for i = l; i <= 2*l; i++ { // i means the length of the shortest palindrome		if i%2 == 1 { // Odd			for j = 1; 0 <= l-1-i/2-j && s[l-1-i/2-j] == s[l-1-i/2+j]; j++ {			}			if l-1-i/2-j < 0 {				break			}		} else { // Even			for j = 1; 0 <= l-i/2-j && s[l-i/2-j] == s[l-1-i/2+j]; j++ {			}			if l-i/2-j < 0 {				break			}		}	}	idx := l - 1 - i/2 + j	var ans strings.Builder	for i := l-1; idx <= i; i-- {		ans.WriteByte(s[i])	}	ans.WriteString(s)	return ans.String()}
 |