3396. Valid Word¶
Difficulty: Easy
LeetCode Problem View on GitHub
3396. Valid Word
Easy
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 <= 20wordconsists of English uppercase and lowercase letters, digits,'@','#', and'$'.
Solution¶
class Solution {
public boolean isValid(String word) {
int n = word.length();
if (n < 3)
return false;
word = word.toLowerCase();
int dc = 0, vc = 0, cc = 0;
for (int i = 0; i < n; i++) {
char current = word.charAt(i);
if (Character.isDigit(current))
dc++;
else if (current == 'a' || current == 'e' || current == 'i' || current == 'o' || current == 'u')
vc++;
else if (Character.isLetter(current) && (current != 'a' && current != 'e' && current != 'i' && current != 'o' && current != 'u'))
cc++;
}
if (dc + cc + vc != n || vc == 0 || cc == 0)
return false;
return true;
}
}
Complexity Analysis¶
- Time Complexity:
O(?) - Space Complexity:
O(?)
Approach¶
Detailed explanation of the approach will be added here