AOJ2079 Dance Dance Revolution

問題リンク Dance Dance Revolution

  • 概要

DDRの譜面が与えられる。これが「自然な」譜面かどうかを判定せよ。「自然な」とは
・左足と右足が交互に出る
・同じ矢印が連続しない
・体は常に前を向く
・足が交差しない
を満たすことをいう。
譜面の長さ <= 10^5

  • 解法

体が前を向く?足が交差しない?これらに違反するような譜面の定義が無いのでよくわからん問題なのですが、おっそろしいことに、「同じ矢印が連続しない」かどうかだけ調べれば良いのです。なんじゃそりゃ

  • ソース
import java.util.Scanner;

//Dance Dance Revolution
public class AOJ2079 {

	void run(){
		Scanner sc = new Scanner(System.in);
		int T = sc.nextInt();
		while(T--!=0){
			char[] s = sc.next().toCharArray();
			boolean f = false;
			for(int i=0;i+1<s.length;i++)f|=s[i]==s[i+1];
			System.out.println(f?"No":"Yes");
		}
	}
	
	public static void main(String[] args) {
		new AOJ2079().run();
	}
}