欢迎光临散文网 会员登陆 & 注册

CF1008A - Romaji

2023-06-24 11:22 作者:您是打尖儿还是住店呢  | 我要投稿

Vitya has just started learning Berlanese language. It is known that Berlanese uses the Latin alphabet. Vowel letters are "a", "o", "u", "i", and "e". Other letters are consonant.


In Berlanese, there has to be a vowel after every consonant, but there can be any letter after any vowel. The only exception is a consonant "n"; after this letter, there can be any letter (not only a vowel) or there can be no letter at all. For example, the words "harakiri", "yupie", "man", and "nbo" are Berlanese while the words "horse", "king", "my", and "nz" are not.


Help Vitya find out if a word s

 is Berlanese.


Input

The first line of the input contains the string s

 consisting of |s|

 (1≤|s|≤100

) lowercase Latin letters.


Output

Print "YES" (without quotes) if there is a vowel after every consonant except "n", otherwise print "NO".


You can print each letter in any case (upper or lower).

------------------------------

本来是一道简单题目,我却想复杂了。。。

1:判断当前是否是元音;

2:如果不是元音的话,继续判断;

3:如果是n,continue;

4:如果下一位还是辅音,则输出NO,程序退出,(条件是当前的所以不能是最后一位)

下面是代码:

import java.util.HashSet;

import java.util.Scanner;

import java.util.Set;


public class A1008 {

    public static void main(String[] args) {

        Scanner sc=new Scanner(System.in);

        String s=sc.next();

        sc.close();

        Set<Character>v=new HashSet<>();

        v.add('a');

        v.add('e');

        v.add('i');

        v.add('o');

        v.add('u');

        char[]cs=s.toCharArray();

        for (int i = 0; i < cs.length; i++) {

            if(!v.contains(cs[i])){

                if(cs[i]=='n'){

                    continue;

                }

                if(i==cs.length-1||!v.contains(cs[i+1])){

                    System.out.println("NO");

                    return;

                }

            }

        }

        System.out.println("YES");

    }

}



CF1008A - Romaji的评论 (共 条)

分享到微博请遵守国家法律