Skip to content

3136. Valid Word

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 '$' character and does not have a consonant.

 

Constraints:

  • 1 <= word.length <= 20
  • word consists of English uppercase and lowercase letters, digits, '@', '#', and '$'.

 

Solutions

Solution: Brute Force

  • Time complexity: O(n)
  • Space complexity: O(1)

 

JavaScript

js
/**
 * @param {string} word
 * @return {boolean}
 */
const isValid = function (word) {
  const n = word.length;

  if (n < 3) return false;

  const vowels = ['a', 'e', 'i', 'o', 'u'];
  let containVowel = false;
  let containConsonant = false;

  for (const char of word) {
    const lowerChar = char.toLowerCase();

    if (!/[a-z0-9]/.test(lowerChar)) return false;
    if (/\d/.test(lowerChar)) continue;

    if (vowels.includes(lowerChar)) {
      containVowel = true;
    } else {
      containConsonant = true;
    }
  }

  return containVowel && containConsonant;
};

Released under the MIT license