蓝桥杯:音节判断(超详细)

    科技2022-07-10  152

    题目

    【问题描述】    小明对类似于 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"); } } }
    Processed: 0.012, SQL: 8