AOJ1142 Organize Your Train part II

問題リンク Organize Your Train part II

  • 解法

列車を2つに分割し、それぞれに対して「逆さまにする」「順序を逆にする」の選択肢があり、8通りのパターンがあります。
分割する個所は高々72箇所なので全てを試すことができます。

  • ソース
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

//Organize Your Train part II
public class AOJ1142 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int t = sc.nextInt();
		while(t--!=0){
			String s = sc.next();
			Set<String> set = new HashSet<String>();
			for(int i=1;i<=s.length();i++){
				String s1 = s.substring(0, i);
				String s2 = s.substring(i, s.length());
				String r1 = (new StringBuffer(s1)).reverse().toString();
				String r2 = (new StringBuffer(s2)).reverse().toString();
				set.add(s1+s2);
				set.add(s1+r2);
				set.add(s2+s1);
				set.add(r2+s1);
				set.add(r1+s2);
				set.add(r1+r2);
				set.add(s2+r1);
				set.add(r2+r1);
			}
			System.out.println(set.size());
		}
	}
}