Problem:
回文

半角アルファベット文字列からなる、1 行あたり 100 文字以内のデータがあります。いくつかの行は対称（左端から読んでも右端から読んでも同じ）です。このデータを読み込んで、その中の対称な文字列の数を出力するプログラムを作成してください。なお、１文字だけからなる行は対称であるとします。

Input

複数の文字列が複数行にわたって与えられます。各行に１つの文字列が与えられます。文字列の数は 50 を超えません。

Output

対称な文字列の数を１行に出力します。

Sample Input

abcba
sx
abcddcba
rttrd

Output for the Sample Input

2

Solution in JAVA (judge verdict: Accepted)

import java.util.Deque;
import java.util.LinkedList;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int counter = 0;
		char[] a;
		Deque<Character> deq = new LinkedList<Character>();
		boolean isABA = true;
		while (in.hasNext()) {
			deq.clear();
			a = in.next().toCharArray();
			for (int i = 0; i < a.length; i++) {
				deq.add(Character.valueOf(a[i]));
			}
			isABA = true;
			while (deq.size() >= 2 && isABA) {
				isABA = deq.pollFirst() == deq.pollLast();
			}
			if (isABA) {
				counter++;
			}
		}
		System.out.println(counter);
	}
}