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;
};