Problem:
Score : 200 points

Problem Statement

Takahashi loves palindromes. Non-palindromic strings are unacceptable to him. Each time he hugs a string, he can change one of its characters to any character of his choice.

Given is a string S. Find the minimum number of hugs needed to make S palindromic.

Constraints

S is a string consisting of lowercase English letters.

The length of S is between 1 and 100 (inclusive).

Input

Input is given from Standard Input in the following format:

S

Output

Print the minimum number of hugs needed to make S palindromic.

Sample Input 1

redcoder

Sample Output 1

1

For example, we can change the fourth character to o and get a palindrome redooder.

Sample Input 2

vvvvvv

Sample Output 2

0

We might need no hugs at all.

Sample Input 3

abcdabc

Sample Output 3

2

Solution in Go (1.6) (judge verdict: Accepted)

package main

import (
	"fmt"
	"strings"
)

func main() {

	var s string
	fmt.Scan(&s)

	s_len := len(s)

	if s_len == 1 {
		fmt.Println(0)
	} else if s_len % 2 == 0 {
		zenhan := s[: (s_len / 2)]
		kouhan := s[ (s_len /2 ):]

		c := check(zenhan, kouhan)

		fmt.Println(c)
	} else {
		zenhan := s[: (s_len / 2)]
		kouhan := s[ (s_len /2 ) + 1:]
		c := check(zenhan, kouhan)

		fmt.Println(c)
	}

}

func check(a string, b string) int {

	rev := reverse(b)

	a_list := strings.Split(a, "")
	b_list := strings.Split(rev, "")

	count := 0

	for i := 0; i < len(a); i++ {
		if a_list[i] != b_list[i] {
			count = count + 1
		}
	}

	return count
}

func reverse(s string) string {
	runes := []rune(s)
	for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
		runes[i], runes[j] = runes[j], runes[i]
	}
	return string(runes)
}