题目
【问题描述】
小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,第四段由一个或多个元音字母组成。
给定一个单词,请判断这个单词是否也是这种单词,如果是请输出yes,否则请输出no。
元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。
【输入格式】
输入一行,包含一个单词,单词中只包含小写英文字母。
【输出格式】
输出答案,或者为yes,或者为no。
【样例输入】
lanqiao
【样例输出】
yes
【样例输入】
world
【样例输出】
no
【评测用例规模与约定】
对于所有评测用例,单词中的字母个数不超过100。
解题思路
全在代码的注解里
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {//音节判断
Scanner scanner = new Scanner(System.in);
char []c = scanner.next().toCharArray();
int j=0,count=0; //j代表下标,count代表段与段之间,比如从一段到二段,count++,二段到三段count++,三段到四段count++,最终count为3
for(int i=1;i<=4;i++){ //i代表第几段
for(;j<c.length;){
if(i==1||i==3){//一段和三段时应当为辅音
if(c[j]!='a'&&c[j]!='e'&&c[j]!='i'&&c[j]!='o'&&c[j]!='u'){//辅音
j++;//为辅音j+1并continue判断j+1
continue;
}else{
count++;
break;//不为辅音下标j不变并跳入下一段
}
}
if((i==2||i==4)&&j!=0){//二段和四段时应当为元音,并且下标不能为0
if(c[j]=='a'||c[j]=='e'||c[j]=='i'||c[j]=='o'||c[j]=='u'){//元音
j++;//为元音j+1并continue判断j+1
continue;
}else{
count++;
break;//不为元音下标j不变并跳入下一段
}
}
}
}
if(count==3){
System.out.println("yes");
}else{
System.out.println("no");
}
}
}