POJ-1566: Haiku Review

問題概要=解法

母音の数を数えるだけ。

#include <cstdio>
#include <cstring>
using namespace std;

char line[1025];
bool isVowel[0x100];

int solve(){
	int n = strlen(line), state = 1, cnt = 0;
	for(int i=0; i<n; i++){
		if(line[i] == '/'){
			if(state == 1 && cnt != 5) return 1;
			else if(state == 2 && cnt != 7) return 2;
			else{
				state++;
				cnt = 0;
			}
		}
		if(isVowel[line[i]] && !isVowel[line[i+1]]){
			cnt++;
		}
	}

	return cnt == 5?0:3;
}

int main(){
	isVowel['a'] = isVowel['i'] = isVowel['u'] = isVowel['e'] = isVowel['o'] = isVowel['y'] = true;
	while(scanf(" %[^\n]",line), strcmp(line,"e/o/i")){
		int ans = solve();
		if(ans) printf("%d\n",ans);
		else puts("Y");
	}
	return 0;
}