Skip to content

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 <= 20
  • word consists 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