Welcome to Subscribe On Youtube
2062. Count Vowel Substrings of a String
Description
A substring is a contiguous (non-empty) sequence of characters within a string.
A vowel substring is a substring that only consists of vowels ('a'
, 'e'
, 'i'
, 'o'
, and 'u'
) and has all five vowels present in it.
Given a string word
, return the number of vowel substrings in word
.
Example 1:
Input: word = "aeiouu" Output: 2 Explanation: The vowel substrings of word are as follows (underlined): - "aeiouu" - "aeiouu"
Example 2:
Input: word = "unicornarihan" Output: 0 Explanation: Not all 5 vowels are present, so there are no vowel substrings.
Example 3:
Input: word = "cuaieuouac" Output: 7 Explanation: The vowel substrings of word are as follows (underlined): - "cuaieuouac" - "cuaieuouac" - "cuaieuouac" - "cuaieuouac" - "cuaieuouac" - "cuaieuouac" - "cuaieuouac"
Constraints:
1 <= word.length <= 100
word
consists of lowercase English letters only.
Solutions
-
class Solution { public int countVowelSubstrings(String word) { int n = word.length(); int ans = 0; for (int i = 0; i < n; ++i) { Set<Character> t = new HashSet<>(); for (int j = i; j < n; ++j) { char c = word.charAt(j); if (!isVowel(c)) { break; } t.add(c); if (t.size() == 5) { ++ans; } } } return ans; } private boolean isVowel(char c) { return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'; } }
-
class Solution { public: int countVowelSubstrings(string word) { int ans = 0; int n = word.size(); for (int i = 0; i < n; ++i) { unordered_set<char> t; for (int j = i; j < n; ++j) { char c = word[j]; if (!isVowel(c)) break; t.insert(c); ans += t.size() == 5; } } return ans; } bool isVowel(char c) { return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'; } };
-
class Solution: def countVowelSubstrings(self, word: str) -> int: n = len(word) s = set('aeiou') return sum(set(word[i:j]) == s for i in range(n) for j in range(i + 1, n + 1))
-
func countVowelSubstrings(word string) int { ans, n := 0, len(word) for i := range word { t := map[byte]bool{} for j := i; j < n; j++ { c := word[j] if !(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') { break } t[c] = true if len(t) == 5 { ans++ } } } return ans }
-
function countVowelSubstrings(word: string): number { let ans = 0; const n = word.length; for (let i = 0; i < n; ++i) { const t = new Set<string>(); for (let j = i; j < n; ++j) { const c = word[j]; if (!(c === 'a' || c === 'e' || c === 'i' || c === 'o' || c === 'u')) { break; } t.add(c); if (t.size === 5) { ans++; } } } return ans; }