AOJ2369 CatChecker
問題リンク CatChecker
- 解法
BNFの通りに解析を進めていき、解析を終えたときに正常に全ての文字を読むことができたらCatとなります。解析が途中で終わったり、読みのこしの部分が残っていたらRabbitです。
- ソース
import java.util.Scanner; //CatChecker public class AOJ2369 { char[] s; int id; char get(){ return s[id++]; } void f(){ char ch = get(); if(ch!='m'){ id--; return; } f(); ch = get(); if(ch!='e'){ id--; return; } f(); ch = get(); if(ch!='w'){ id--; return; } return; } void run(){ Scanner sc = new Scanner(System.in); s = (sc.next()+"$").toCharArray(); id = 0; f(); System.out.println(s[id]=='$'?"Cat":"Rabbit"); } public static void main(String[] args) { new AOJ2369().run(); } }