package main import "fmt" var S string var ans = make(map[string]bool) func main() { fmt.Scan(&S) //ans := make(map[string]bool) //var dfs func(string, int, int) //dfs = func(s string, l, r int) { // if l == r { // ans[s] = true // return // } // s1 := s + string(S[l]) // s2 := s + string(S[r]) // dfs(s1, l+1, r) // dfs(s2, l, r-1) //} dfs("", 0, len(S)-1) fmt.Println(len(ans)) } func dfs(s string, l, r int) { if l == r { ans[s] = true return } s1 := s + string(S[l]) s2 := s + string(S[r]) dfs(s1, l+1, r) dfs(s2, l, r-1) }