Даден низ пренаредете знаците на дадения низ така, че гласните и съгласните да заемат алтернативна позиция. Ако низът не може да бъде пренареден по желания начин, отпечатайте „няма такъв низ“. Трябва да се запази редът на гласните една спрямо друга и редът на съгласните една спрямо друга.
Ако може да се образува повече от един задължителен низ, отпечатайте лексикографски по-малкия.
Примери:
Input : geeks Output : gekes Input : onse Output : nose There are two possible outcomes 'nose' and 'ones'. Since 'nose' is lexicographically smaller we print it.
- Пребройте броя на гласните и съгласните в даден низ.
- Ако разликата между броя е повече от един, връща „Невъзможно“.
- Ако има повече гласни отколкото съгласни, първо отпечатайте първата гласна и повторете за останалия низ.
- Ако има повече съгласни от гласните, първо отпечатайте първата съгласна и повторете за останалия низ.
- Ако броят е еднакъв, сравнете първата гласна с първата съгласна и първо отпечатайте по-малката.
Изпълнение:
C++
// C++ implementation of alternate vowel and // consonant string #include using namespace std; // 'ch' is vowel or not bool isVowel(char ch) { if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch =='u') return true; return false; } // create alternate vowel and consonant string // str1[0...l1-1] and str2[start...l2-1] string createAltStr(string str1 string str2 int start int l) { string finalStr = ''; // first adding character of vowel/consonant // then adding character of consonant/vowel for (int i=0 j=start; j<l; i++ j++) finalStr = (finalStr + str1.at(i)) + str2.at(j); return finalStr; } // function to find the required // alternate vowel and consonant string string findAltStr(string str) { int nv = 0 nc = 0; string vstr = '' cstr = ''; int l = str.size(); for (int i=0; i<l; i++) { char ch = str.at(i); // count vowels and update vowel string if (isVowel(ch)) { nv++; vstr = vstr + ch; } // count consonants and update consonant // string else { nc++; cstr = cstr + ch; } } // no such string can be formed if (abs(nv-nc) >= 2) return 'no such string'; // remove first character of vowel string // then create alternate string with // cstr[0...nc-1] and vstr[1...nv-1] if (nv > nc) return (vstr.at(0) + createAltStr(cstr vstr 1 nv)); // remove first character of consonant string // then create alternate string with // vstr[0...nv-1] and cstr[1...nc-1] if (nc > nv) return (cstr.at(0) + createAltStr(vstr cstr 1 nc)); // if both vowel and consonant // strings are of equal length // start creating string with consonant if (cstr.at(0) < vstr.at(0)) return createAltStr(cstr vstr 0 nv); // start creating string with vowel return createAltStr(vstr cstr 0 nc); } // Driver program to test above int main() { string str = 'geeks'; cout << findAltStr(str); return 0; }
Java // Java implementation of alternate vowel and // consonant string import java.util.*; class GFG { // 'ch' is vowel or not static boolean isVowel(char ch) { if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch =='u') return true; return false; } // create alternate vowel and consonant string // str1[0...l1-1] and str2[start...l2-1] static String createAltStr(String str1 String str2 int start int l) { String finalStr = ''; // first adding character of vowel/consonant // then adding character of consonant/vowel for (int i = 0 j = start; j < l; i++ j++) finalStr = (finalStr + str1.charAt(i)) + str2.charAt(j); return finalStr; } // function to find the required // alternate vowel and consonant string static String findAltStr(String str) { int nv = 0 nc = 0; String vstr = '' cstr = ''; int l = str.length(); for (int i = 0; i < l; i++) { char ch = str.charAt(i); // count vowels and update vowel string if (isVowel(ch)) { nv++; vstr = vstr + ch; } // count consonants and update consonant // string else { nc++; cstr = cstr + ch; } } // no such string can be formed if (Math.abs(nv - nc) >= 2) return 'no such string'; // remove first character of vowel string // then create alternate string with // cstr[0...nc-1] and vstr[1...nv-1] if (nv > nc) return (vstr.charAt(0) + createAltStr(cstr vstr 1 nv)); // remove first character of consonant string // then create alternate string with // vstr[0...nv-1] and cstr[1...nc-1] if (nc > nv) return (cstr.charAt(0) + createAltStr(vstr cstr 1 nc)); // if both vowel and consonant // strings are of equal length // start creating string with consonant if (cstr.charAt(0) < vstr.charAt(0)) return createAltStr(cstr vstr 0 nv); // start creating string with vowel return createAltStr(vstr cstr 0 nc); } // Driver code public static void main(String args[]) { String str = 'geeks'; System.out.println(findAltStr(str)); } } // This code is contributed by // Shashank_Sharma
Python 3 # Python implementation of alternate vowel # and consonant string # 'ch' is vowel or not def isVowel(ch): if(ch == 'a' or ch == 'e' or ch == 'i' or ch == 'o' or ch == 'u'): return True return False # create alternate vowel and consonant string # str1[0...l1-1] and str2[start...l2-1] def createAltStr(str1 str2 start l): finalStr = '' i = 0 # first adding character of vowel/consonant # then adding character of consonant/vowel for j in range(start l): finalStr = (finalStr + str1[i]) + str2[j] i + 1 return finalStr # function to find the required # alternate vowel and consonant string def findAltStr(str1): nv = 0 nc = 0 vstr = '' cstr = '' l = len(str1) for i in range(0 l): # count vowels and update vowel string if(isVowel(str1[i])): nv += 1 vstr = vstr + str1[i] # count consonants and update # consonant string else: nc += 1 cstr = cstr + str1[i] # no such string can be formed if(abs(nv - nc) >= 2): return 'no such string' # remove first character of vowel string # then create alternate string with # cstr[0...nc-1] and vstr[1...nv-1] if(nv > nc): return (vstr[0] + createAltStr(cstr vstr 1 nv)) # remove first character of consonant string # then create alternate string with # vstr[0...nv-1] and cstr[1...nc-1] if(nc > nv): return (cstr[0] + createAltStr(vstr cstr 1 nc)) # if both vowel and consonant # strings are of equal length # start creating string with consonant if(cstr[0] < vstr[0]): return createAltStr(cstr vstr 0 nv) return createAltStr(vstr cstr 0 nc) # Driver Code if __name__ == '__main__': str1 = 'geeks' print(findAltStr(str1)) # This code is contributed by Sairahul099
C# // C# implementation of alternate vowel and // consonant string using System; class GFG { // 'ch' is vowel or not static Boolean isVowel(char ch) { if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch =='u') return true; return false; } // create alternate vowel and consonant string // str1[0...l1-1] and str2[start...l2-1] static String createAltStr(String str1 String str2 int start int l) { String finalStr = ''; // first adding character of vowel/consonant // then adding character of consonant/vowel for (int i = 0 j = start; j < l; i++ j++) finalStr = (finalStr + str1[i]) + str2[j]; return finalStr; } // function to find the required // alternate vowel and consonant string static String findAltStr(String str) { int nv = 0 nc = 0; String vstr = '' cstr = ''; int l = str.Length; for (int i = 0; i < l; i++) { char ch = str[i]; // count vowels and update vowel string if (isVowel(ch)) { nv++; vstr = vstr + ch; } // count consonants and update consonant // string else { nc++; cstr = cstr + ch; } } // no such string can be formed if (Math.Abs(nv - nc) >= 2) return 'no such string'; // remove first character of vowel string // then create alternate string with // cstr[0...nc-1] and vstr[1...nv-1] if (nv > nc) return (vstr[0] + createAltStr(cstr vstr 1 nv)); // remove first character of consonant string // then create alternate string with // vstr[0...nv-1] and cstr[1...nc-1] if (nc > nv) return (cstr[0] + createAltStr(vstr cstr 1 nc)); // if both vowel and consonant // strings are of equal length // start creating string with consonant if (cstr[0] < vstr[0]) return createAltStr(cstr vstr 0 nv); // start creating string with vowel return createAltStr(vstr cstr 0 nc); } // Driver code public static void Main(String []args) { String str = 'geeks'; Console.WriteLine(findAltStr(str)); } } // This code is contributed by Princi Singh
JavaScript <script> // JavaScript implementation of alternate vowel and // consonant string // 'ch' is vowel or not function isVowel(ch) { if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch =='u') return true; return false; } // create alternate vowel and consonant string // str1[0...l1-1] and str2[start...l2-1] function createAltStr(str1 str2startl) { let finalStr = ''; // first adding character of vowel/consonant // then adding character of consonant/vowel for (let i=0 j=start; j<l; i++ j++) finalStr = (finalStr + str1[i] + str2[j]); return finalStr; } // function to find the required // alternate vowel and consonant string function findAltStr(str) { let nv = 0 nc = 0; let vstr = '' cstr = ''; let l = str.length; for (let i=0; i<l; i++) { let ch = str[i]; // count vowels and update vowel string if (isVowel(ch)) { nv++; vstr = vstr + ch; } // count consonants and update consonant // string else { nc++; cstr = cstr + ch; } } // no such string can be formed if (Math.abs(nv-nc) >= 2) return 'no such string'; // remove first character of vowel string // then create alternate string with // cstr[0...nc-1] and vstr[1...nv-1] if (nv > nc) return (vstr[0] + createAltStr(cstr vstr 1 nv)); // remove first character of consonant string // then create alternate string with // vstr[0...nv-1] and cstr[1...nc-1] if (nc > nv) return (cstr[0] + createAltStr(vstr cstr 1 nc)); // if both vowel and consonant // strings are of equal length // start creating string with consonant if (cstr.at(0) < vstr.at(0)) return createAltStr(cstr vstr 0 nv); // start creating string with vowel return createAltStr(vstr cstr 0 nc); } // Driver program to test above let str = 'geeks'; document.write(findAltStr(str)); // This code is contributed by Shinjan_Patra </script>
Изход
gekes
Времева сложност: O(n) където 'n' е дължината на низа
Помощно пространство: O(n) където 'n' е дължината на низа.
Чрез хеширане:
Идеята е да се използва хеш таблица за да съхраните появата на гласни и съгласни, след това приложете простата груба сила.
Стъпки за решаване на проблема:
1. декларирайте вектора mp1 и mp2 за съхраняване на срещането и променливите v и c за съхраняване на броя на гласните и съгласните.
2. итерация през низа и увеличаване на появата на гласни и съгласни в хеш-таблицата.
3. ако абсолютната разлика на v и c е по-голяма от 1, в този случай низ с редуващи се гласна и съгласна не е възможен, така че ще върнем ' no='' such='' string'.<='' p=''>
хеш таблица за да съхраните появата на гласни и съгласни, след това приложете простата груба сила.
Стъпки за решаване на проблема:
1. декларирайте вектора mp1 и mp2 за съхраняване на срещането и променливите v и c за съхраняване на броя на гласните и съгласните.
2. итерация през низа и увеличаване на появата на гласни и съгласни в хеш-таблицата.
3. ако абсолютната разлика на v и c е по-голяма от 1, в този случай низ с редуващи се гласна и съгласна не е възможен, така че ще върнем ' no='' such='' string'.<='' p=''>4. декларирайте променлива it1 it2 и i, за да преминете през вектора, за да намерите първата гласна и съгласни.
хеш таблица за да съхраните появата на гласни и съгласни, след това приложете простата груба сила.Стъпки за решаване на проблема:
1. декларирайте вектора mp1 и mp2 за съхраняване на срещането и променливите v и c за съхраняване на броя на гласните и съгласните.
2. итерация през низа и увеличаване на появата на гласни и съгласни в хеш-таблицата.
java филтър поток
3. ако абсолютната разлика на v и c е по-голяма от 1, в този случай низ с редуващи се гласна и съгласна не е възможен, така че ще върнем ' no='' such='' string'.<='' p=''>
5. докато то1
- ще увеличим първия итератор.
6. докато то2
- ще увеличим втория итератор.
7. декларирайте Boolean f, за да съхранявате c е по-голямо от v или да не проверявате дали съгласните ще бъдат на първо място или гласната.
8. ако v е равно на c:
- ако f е вярно s[i]=it2+'a' --mp2[it2] и итерация през mp2 докато mp2[it2] стане равно на нула и увеличаване it2 f=false .
- друго s[i]=it1+'a' --mp1[it1] и итерация през mp1 докато mp1[it1] стане равно на нула и увеличаване it1 f=true .
- нарастване на i.
9. докато it1 е по-малък от mp1.size() и it2 е по-малък от mp2.size() и i е по-малък от n:
10. проверете за състояние, при което е оставена само една гласна или съгласна.
11. върнете низа.
Реализация на подхода:
C++// C++ implementation of alternate vowel and // consonant string #include using namespace std; string findAltStr(string s) { int n = s.size(); vector<int> mp1(26) mp2(26); // to store vowels and consonants int v = 0 c = 0; for (char ch : s) { if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') { // if it's vowel mp1[ch - 'a']++; v++; } else { // consonant mp2[ch - 'a']++; c++; } } if (abs(v - c) > 1) return 'no such string'; // if their diff is greater than one // then string with alternate vowel and // consonant cannot be made int it1 = 0 it2 = 0 i = 0; while (it1 < mp1.size() && mp1[it1] == 0) it1++; // to find first vowel while (it2 < mp2.size() && mp2[it2] == 0) it2++; // to find first consonant bool f = c > v; // if number of consonant is greater then // we will place consonant first else vowel if (v == c) { f = it1 > it2; // if both are equal then check which // is lexiographically smaller } while ((it1 < mp1.size() && it2 < mp2.size()) && i < n) { if (f) { s[i] = it2 + 'a'; --mp2[it2]; while (it2 < mp2.size() && mp2[it2] == 0) it2++; f = false; // this will trigger to place vowel // next } else { s[i] = it1 + 'a'; --mp1[it1]; while (it1 < mp1.size() && mp1[it1] == 0) it1++; f = true; // this will trigger to place // consonant next } ++i; } if (it1 != mp1.size()) s[i] = it1 + 'a'; // if one vowel left else if (it2 != mp2.size()) s[i] = it2 + 'a'; // if one consonant left return s; } // Driver program to test above int main() { string str = 'geeks'; cout << findAltStr(str); return 0; } // This code is contributed by Prateek Kumar Singh
Java // Java implementation of alternate vowel and // consonant string import java.util.*; public class GFG { static String findAltStr(String str) { char[] s = str.toCharArray(); int n = s.length; int[] mp1 = new int[26]; int[] mp2 = new int[26]; // to store vowels and consonants int v = 0 c = 0; for (char ch : s) { if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') { // if it's vowel mp1[ch - 'a']++; v++; } else { // consonant mp2[ch - 'a']++; c++; } } if (Math.abs(v - c) > 1) return 'no such string'; // if their diff is // greater than one // then string with // alternate vowel and // consonant cannot be // made int it1 = 0 it2 = 0 i = 0; while (it1 < mp1.length && mp1[it1] == 0) it1++; // to find first vowel while (it2 < mp2.length && mp2[it2] == 0) it2++; // to find first consonant boolean f = c > v; // if number of consonant is // greater then we will place // consonant first else vowel if (v == c) { f = it1 > it2; // if both are equal then check which // is lexiographically smaller } while ((it1 < mp1.length && it2 < mp2.length) && i < n) { if (f) { s[i] = (char)(it2 + 'a'); --mp2[it2]; while (it2 < mp2.length && mp2[it2] == 0) it2++; f = false; // this will trigger to place // vowel next } else { s[i] = (char)(it1 + 'a'); --mp1[it1]; while (it1 < mp1.length && mp1[it1] == 0) it1++; f = true; // this will trigger to place // consonant next } ++i; } if (it1 != mp1.length) s[i] = (char)(it1 + 'a'); // if one vowel left else if (it2 != mp2.length) s[i] = (char)(it2 + 'a'); // if one consonant left return String.valueOf(s); } // Driver program to test above public static void main(String[] args) { String str = 'geeks'; System.out.println(findAltStr(str)); } } // This code is contributed by Karandeep1234
C# // C# implementation of alternate vowel and // consonant string using System; class GFG { static string FindAltStr(string str) { char[] s = str.ToCharArray(); int n = s.Length; int[] mp1 = new int[26]; int[] mp2 = new int[26]; // to store vowels and consonants int v = 0 c = 0; foreach (char ch in s) { if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') { // if it's vowel mp1[ch - 'a']++; v++; } else { // consonant mp2[ch - 'a']++; c++; } } if (Math.Abs(v - c) > 1) return 'no such string'; // if their diff is // greater than one // then string with // alternate vowel and // consonant cannot be // made int it1 = 0 it2 = 0 i = 0; while (it1 < mp1.Length && mp1[it1] == 0) it1++; // to find first vowel while (it2 < mp2.Length && mp2[it2] == 0) it2++; // to find first consonant bool f = c > v; // if number of consonant is // greater then we will place // consonant first else vowel if (v == c) { f = it1 > it2; // if both are equal then check which // is lexiographically smaller } while ((it1 < mp1.Length && it2 < mp2.Length) && i < n) { if (f) { s[i] = (char)(it2 + 'a'); --mp2[it2]; while (it2 < mp2.Length && mp2[it2] == 0) it2++; f = false; // this will trigger to place // vowel next } else { s[i] = (char)(it1 + 'a'); --mp1[it1]; while (it1 < mp1.Length && mp1[it1] == 0) it1++; f = true; // this will trigger to place // consonant next } ++i; } if (it1 != mp1.Length) s[i] = (char)(it1 + 'a'); // if one vowel left else if (it2 != mp2.Length) s[i] = (char)(it2 + 'a'); // if one consonant left return new string(s); } // Driver program to test above public static void Main(string[] args) { string str = 'geeks'; Console.WriteLine(FindAltStr(str)); } } // This code is contributed by Pushpesh Raj.
Python3 def findAltStr(s): n = len(s) mp1 = [0]*26 mp2 = [0]*26 # to store vowels and consonants v = 0 c = 0 for ch in s: if ch in ['a' 'e' 'i' 'o' 'u']: # if it's vowel mp1[ord(ch) - ord('a')] += 1 v += 1 else: # consonant mp2[ord(ch) - ord('a')] += 1 c += 1 if abs(v - c) > 1: return 'no such string' # if their diff is greater than one # then string with alternate vowel and # consonant cannot be made it1 = 0 it2 = 0 i = 0 while it1 < len(mp1) and mp1[it1] == 0: it1 += 1 # to find first vowel while it2 < len(mp2) and mp2[it2] == 0: it2 += 1 # to find first consonant f = c > v # if number of consonant is greater then # we will place consonant first else vowel if v == c: f = it1 > it2 # if both are equal then check which # is lexiographically smaller new_str = ['']*n while it1 < len(mp1) and it2 < len(mp2) and i < n: if f: new_str[i] = chr(it2 + ord('a')) mp2[it2] -= 1 while it2 < len(mp2) and mp2[it2] == 0: it2 += 1 f = False # this will trigger to place vowel # next else: new_str[i] = chr(it1 + ord('a')) mp1[it1] -= 1 while it1 < len(mp1) and mp1[it1] == 0: it1 += 1 f = True # this will trigger to place # consonant next i += 1 if it1 != len(mp1): new_str[i] = chr(it1 + ord('a')) # if one vowel left elif it2 != len(mp2): new_str[i] = chr(it2 + ord('a')) # if one consonant left return ''.join(new_str) # Driver program to test above str = 'geeks' print(findAltStr(str))
JavaScript function findAltStr(s) { const n = s.length; const mp1 = new Array(26).fill(0); const mp2 = new Array(26).fill(0); // to store vowels and consonants let v = 0; let c = 0; for (const ch of s) { if (['a' 'e' 'i' 'o' 'u'].includes(ch)) { // if it's vowel mp1[ch.charCodeAt(0) - 'a'.charCodeAt(0)] += 1; v += 1; } else { // consonant mp2[ch.charCodeAt(0) - 'a'.charCodeAt(0)] += 1; c += 1; } } if (Math.abs(v - c) > 1) { return 'no such string'; // if their diff is greater than one // then string with alternate vowel and // consonant cannot be made } let it1 = 0; let it2 = 0; let i = 0; while (it1 < mp1.length && mp1[it1] == 0) { it1 += 1; // to find first vowel } while (it2 < mp2.length && mp2[it2] == 0) { it2 += 1; // to find first consonant } let f = c > v; // if number of consonant is greater then // we will place consonant first else vowel if (v === c) { f = it1 > it2; // if both are equal then check which // is lexiographically smaller } const new_str = new Array(n); while (it1 < mp1.length && it2 < mp2.length && i < n) { if (f) { new_str[i] = String.fromCharCode(it2 + 'a'.charCodeAt(0)); mp2[it2] -= 1; while (it2 < mp2.length && mp2[it2] === 0) { it2 += 1; } f = false; // this will trigger to place vowel // next } else { new_str[i] = String.fromCharCode(it1 + 'a'.charCodeAt(0)); mp1[it1] -= 1; while (it1 < mp1.length && mp1[it1] === 0) { it1 += 1; } f = true; // this will trigger to place // consonant next } i += 1; } if (it1 !== mp1.length) { new_str[i] = String.fromCharCode(it1 + 'a'.charCodeAt(0)); // if one vowel left } else if (it2 !== mp2.length) { new_str[i] = String.fromCharCode(it2 + 'a'.charCodeAt(0)); // if one consonant left } return new_str.join(''); } // Driver program to test above const str = 'geeks'; console.log(findAltStr(str));
Изход
gekes
Времева сложност: O(n)
Помощно пространство: O(n)
Този подход се допринася от Пратек Кумар Сингх (pkrsingh025).
хеш таблица за да съхраните появата на гласни и съгласни, след това приложете простата груба сила.
Стъпки за решаване на проблема:
1. декларирайте вектора mp1 и mp2 за съхраняване на срещането и променливите v и c за съхраняване на броя на гласните и съгласните.
2. итерация през низа и увеличаване на появата на гласни и съгласни в хеш-таблицата.
3. ако абсолютната разлика на v и c е по-голяма от 1, в този случай низ с редуващи се гласна и съгласна не е възможен, така че ще върнем ' no='' such='' string'.<='' p=''> хеш таблица за да съхраните появата на гласни и съгласни, след това приложете простата груба сила.
Стъпки за решаване на проблема:
1. декларирайте вектора mp1 и mp2 за съхраняване на срещането и променливите v и c за съхраняване на броя на гласните и съгласните.
2. итерация през низа и увеличаване на появата на гласни и съгласни в хеш-таблицата.
3. ако абсолютната разлика на v и c е по-голяма от 1, в този случай низ с редуващи се гласна и съгласна не е възможен, така че ще върнем ' no='' such='' string'.<='' p=''> хеш таблица за да съхраните появата на гласни и съгласни, след това приложете простата груба сила.
Стъпки за решаване на проблема:
1. декларирайте вектора mp1 и mp2 за съхраняване на срещането и променливите v и c за съхраняване на броя на гласните и съгласните.
2. итерация през низа и увеличаване на появата на гласни и съгласни в хеш-таблицата.
3. ако абсолютната разлика на v и c е по-голяма от 1, в този случай низ с редуващи се гласна и съгласна не е възможен, така че ще върнем ' no='' such='' string'.<='' p=''> хеш таблица за да съхраните появата на гласни и съгласни, след това приложете простата груба сила.
Стъпки за решаване на проблема:
1. декларирайте вектора mp1 и mp2 за съхраняване на срещането и променливите v и c за съхраняване на броя на гласните и съгласните.
2. итерация през низа и увеличаване на появата на гласни и съгласни в хеш-таблицата.
3. ако абсолютната разлика на v и c е по-голяма от 1, в този случай низ с редуващи се гласна и съгласна не е възможен, така че ще върнем ' no='' such='' string'.<='' p=''> хеш таблица за да съхраните появата на гласни и съгласни, след това приложете простата груба сила.
Стъпки за решаване на проблема:
1. декларирайте вектора mp1 и mp2 за съхраняване на срещането и променливите v и c за съхраняване на броя на гласните и съгласните.
2. итерация през низа и увеличаване на появата на гласни и съгласни в хеш-таблицата.
3. ако абсолютната разлика на v и c е по-голяма от 1, в този случай низ с редуващи се гласна и съгласна не е възможен, така че ще върнем ' no='' such='' string'.<='' p=''> хеш таблица за да съхраните появата на гласни и съгласни, след това приложете простата груба сила.
Стъпки за решаване на проблема:
1. декларирайте вектора mp1 и mp2 за съхраняване на срещането и променливите v и c за съхраняване на броя на гласните и съгласните.
2. итерация през низа и увеличаване на появата на гласни и съгласни в хеш-таблицата.
3. ако абсолютната разлика на v и c е по-голяма от 1, в този случай низ с редуващи се гласна и съгласна не е възможен, така че ще върнем ' no='' such='' string'.<='' p=''> Създаване на тест