音节判断
题目描述
小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,第四段由一个或多个元音字母组成。
给定一个单词,请判断这个单词是否也是这种单词,如果是请输出yes,否则请输出no。
元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。
输入描述
输入一行,包含一个单词,单词中只包含小写英文字母。单词中的字母个数不超过 100。
输出描述
输出答案,或者为yes,或者为no。
输入输出样例
示例
输入
lanqiao
输出
yes
1、要求的格式是:辅音+元+辅+元
2、那就按顺序进行判断,题目要求一个或者多个,所以我们用while(true)让他不断地循环知道不满足的时候就跳出
3、t作为记号,t=0代表辅音,t=1代表元音,每次循环之后都去判断,如果满足条件就sum++
4、sum==4就说明满足 辅音+元+辅+元的格式,输出yes,否则输出no
import java.util.Scanner;
public class 音节判断 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//辅音+元+辅+元 元:aeiou
Scanner sc = new Scanner(System.in);
String s=sc.nextLine();
int sum=0;
int i=0;
int t=-1;
while(i<s.length()) {
if(s.charAt(i)!='a'&& s.charAt(i)!='e'&& s.charAt(i)!='i'&&
s.charAt(i)!='o'&& s.charAt(i)!='u') {//0是辅音
i++;
t=0;
}
else
break;
}
if(t==0)
sum++;
while(i<s.length()) {
if(s.charAt(i)=='a'||s.charAt(i)=='e'||s.charAt(i)=='i'||
s.charAt(i)=='o'||s.charAt(i)=='u') {//1是元音
i++;
t=1;
}
else
break;
}
if(t==1)
sum++;
while(i<s.length()) {
if(s.charAt(i)!='a'&& s.charAt(i)!='e'&& s.charAt(i)!='i'&&
s.charAt(i)!='o'&& s.charAt(i)!='u') {//0是辅音
i++;
t=0;
}
else
break;
}
if(t==0)
sum++;
while(i<s.length()) {
if(s.charAt(i)=='a'||s.charAt(i)=='e'||s.charAt(i)=='i'||
s.charAt(i)=='o'||s.charAt(i)=='u') {//1是元音
i++;
t=1;
}
else
break;
}
if(t==1)
sum++;
if(sum==4 && i==s.length())
System.out.println("yes");
else
System.out.println("no");
}
}
上面那种方法显示超时,所以稍微进行一些修改,将判断辅音的放在一起,判断元音的放在一起
import java.util.Scanner;
public class 音节判断2 {
//辅音+元+辅+元 元:aeiou
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String s=sc.nextLine();
int sum=0;
int i=0;
int t=-1;
for (int j = 1; j <=4 ; j++) {
if(j==1 || j==3) { //判断辅音
while(i<s.length()) {
if(s.charAt(i)!='a'&& s.charAt(i)!='e'&& s.charAt(i)!='i'&&
s.charAt(i)!='o'&& s.charAt(i)!='u') {//0是辅音
i++;
t=0;
}
else
break;
}
if(t==0)
sum++;
}
if(j==2 || j==4) { //判断元音
while(i<s.length()) {
if(s.charAt(i)=='a'||s.charAt(i)=='e'||s.charAt(i)=='i'||
s.charAt(i)=='o'||s.charAt(i)=='u') {//1是元音
i++;
t=1;
}
else
break;
}
if(t==1)
sum++;
}
}
if(sum==4 && i==s.length())
System.out.println("yes");
else
System.out.println("no");
}
}