Longest substring of vowels
Given a string s of lowercase letters, we need to find the longest substring length that contains (a, e, i, o, u) only.
Examples :
Input: s = "geeksforgeeks" Output: 2 Longest substring is "ee" Input: s = "theeare" Output: 3
The idea is to traverse the string and keep track of the current number of vowels in the string. If we see a character that is not a vowel, we reset count to 0. But before resetting we update the max count value which is going to be our result.
Implementation:
C++
// CPP program to find the // longest substring of vowels. #include <bits/stdc++.h> using namespace std; bool isVowel( char c) { return (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ); } int longestVowel(string s) { int count = 0, res = 0; for ( int i = 0; i < s.length(); i++) { // Increment current count // if s[i] is vowel if (isVowel(s[i])) count++; else { // check previous value // is greater then or not res = max(res, count); count = 0; } } return max(res, count); } // Driver code int main() { string s = "theeare" ; cout << longestVowel(s) << endl; return 0; } |
Java
// Java program to find the // longest substring of vowels. import java.util.*; class GFG { static boolean isVowel( char c) { return (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ); } static int longestVowel(String str) { int count = 0 , res = 0 ; char [] s = str.toCharArray(); for ( int i = 0 ; i < s.length; i++) { // Increment current count // if s[i] is vowel if (isVowel(s[i])) count++; else { // check previous value // is greater then or not res = Math.max(res, count); count = 0 ; } } return Math.max(res, count); } // Driver code public static void main (String[] args) { String s = "theeare" ; System.out.println(longestVowel(s)); } } // This code is contributed by Mr. Somesh Awasthi |
Python3
# Python3 program to find the # longest substring of vowels. def isVowel(c): return (c = = 'a' or c = = 'e' or c = = 'i' or c = = 'o' or c = = 'u' ) def longestVowel(s): count, res = 0 , 0 for i in range ( len (s)): # Increment current count # if s[i] is vowel if (isVowel(s[i])): count + = 1 else : # check previous value # is greater then or not res = max (res, count) count = 0 return max (res, count) # Driver code if __name__ = = "__main__" : s = "theeare" print (longestVowel(s)) # This code is contributed by Chitranayal |
C#
// C# program to find the // longest substring of vowels. using System; class GFG { static bool isVowel( char c) { return (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ); } static int longestVowel(String str) { int count = 0, res = 0; char []s = str.ToCharArray(); for ( int i = 0; i < s.Length; i++) { // Increment current count // if s[i] is vowel if (isVowel(s[i])) count++; else { // check previous value // is greater then or not res = Math.Max(res, count); count = 0; } } return Math.Max(res, count); } // Driver code public static void Main () { String s = "theeare" ; Console.Write(longestVowel(s)); } } // This code is contributed by nitin mittal |
PHP
<?php // PHP program to find the // longest substring of vowels. function isVowel( $c ) { return ( $c == 'a' || $c == 'e' || $c == 'i' || $c == 'o' || $c == 'u' ); } function longestVowel( $s ) { $count = 0; $res = 0; for ( $i = 0; $i < strlen ( $s ); $i ++) { // Increment current count // if s[i] is vowel if (isVowel( $s [ $i ])) $count ++; else { // check previous value // is greater then or not $res = max( $res , $count ); $count = 0; } } return max( $res , $count ); } // Driver code $s = "theeare" ; echo longestVowel( $s ) ; // This code is contributed // by nitin mittal. ?> |
Javascript
<script> // Javascript program to find the // longest substring of vowels. function isVowel(c) { return (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ); } function longestVowel(str) { let count = 0, res = 0; let s = str.split( "" ); for (let i = 0; i < s.length; i++) { // Increment current count // if s[i] is vowel if (isVowel(s[i])) count++; else { // Check previous value // is greater then or not res = Math.max(res, count); count = 0; } } return Math.max(res, count); } // Driver code let s = "theeare" ; document.write(longestVowel(s)); // This code is contributed by avanitrachhadiya2155 </script> |
Output
3
Time Complexity: O(n)
Auxiliary Space: O(1)
This article is contributed by Ajay Puri. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Login to comment...