Problem Link

Description


A word is considered valid if:

  • It contains a minimum of 3 characters.
  • It contains only digits (0-9), and English letters (uppercase and lowercase).
  • It includes at least one vowel.
  • It includes at least one consonant.

You are given a string word.

Return true if word is valid, otherwise, return false.

Notes:

  • 'a', 'e', 'i', 'o', 'u', and their uppercases are vowels.
  • A consonant is an English letter that is not a vowel.

 

Example 1:

Input: word = "234Adas"

Output: true

Explanation:

This word satisfies the conditions.

Example 2:

Input: word = "b3"

Output: false

Explanation:

The length of this word is fewer than 3, and does not have a vowel.

Example 3:

Input: word = "a3$e"

Output: false

Explanation:

This word contains a '{PROBLEM_DESCRIPTION}#39; character and does not have a consonant.

 

Constraints:

  • 1 <= word.length <= 20
  • word consists of English uppercase and lowercase letters, digits, '@', '#', and '{PROBLEM_DESCRIPTION}#39;.

Solution


Python3

class Solution:
    def isValid(self, word: str) -> bool:
        N = len(word)
        v = c = 0
        
        for x in word:
            if x.isdigit():
                continue
            elif ord('a') <= ord(x) <= ord('z') or ord('A') <= ord(x) <= ord("Z"):
                x = x.lower()
                if x in "aeiou":
                    v += 1
                else:
                    c += 1
            else:
                return False
        
        return N >= 3 and v >= 1 and c >= 1