Dada uma string, reorganize os caracteres da string dada de forma que as vogais e consoantes ocupem posições alternativas. Se a string não puder ser reorganizada da maneira desejada, imprima 'nenhuma string'. A ordem das vogais entre si e a ordem das consoantes entre si devem ser mantidas.
Se mais de uma string necessária puder ser formada, imprima a lexicograficamente menor.
Exemplos:
Input : geeks Output : gekes Input : onse Output : nose There are two possible outcomes 'nose' and 'ones'. Since 'nose' is lexicographically smaller we print it.
- Conte o número de vogais e consoantes em uma determinada string.
- Se a diferença entre as contagens for maior que uma, retorne 'Não é possível'.
- Se houver mais vogais do que consoantes, imprima primeiro a primeira vogal e repita a sequência restante.
- Se houver mais consoantes do que vogais, imprima a primeira consoante primeiro e repita a sequência restante.
- Se as contagens forem iguais, compare a primeira vogal com a primeira consoante e imprima a menor primeiro.
Implementação:
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>
Saída
gekes
Complexidade de tempo: Sobre) onde 'n' é o comprimento da string
Espaço Auxiliar: O(n) onde 'n' é o comprimento da string.
Por hash:
A ideia é usar o tabela hash para armazenar a ocorrência de vogais e consoantes, aplique a força bruta simples.
Passos para resolver o problema:
1. declare os vetores mp1 e mp2 para armazenar a ocorrência e as variáveis v e c para armazenar a contagem de vogais e consoantes.
2. iterar pela string e aumentar a ocorrência de vogais e consoantes na tabela hash.
3. se a diferença absoluta de v e c for maior que 1, neste caso string com vogal e consoante alternadas não é possível então retornaremos 'no='' such='' string'.<='' p=''>
tabela hash para armazenar a ocorrência de vogais e consoantes, aplique a força bruta simples.
Passos para resolver o problema:
1. declare os vetores mp1 e mp2 para armazenar a ocorrência e as variáveis v e c para armazenar a contagem de vogais e consoantes.
2. iterar pela string e aumentar a ocorrência de vogais e consoantes na tabela hash.
3. se a diferença absoluta de v e c for maior que 1, neste caso string com vogal e consoante alternadas não é possível então retornaremos 'no='' such='' string'.<='' p=''>4. declare a variável it1 it2 e i para iterar pelo vetor para encontrar a primeira vogal e consoantes.
tabela hash para armazenar a ocorrência de vogais e consoantes, aplique a força bruta simples.Passos para resolver o problema:
1. declare os vetores mp1 e mp2 para armazenar a ocorrência e as variáveis v e c para armazenar a contagem de vogais e consoantes.
2. iterar pela string e aumentar a ocorrência de vogais e consoantes na tabela hash.
comparar string java
3. se a diferença absoluta de v e c for maior que 1, neste caso string com vogal e consoante alternadas não é possível então retornaremos 'no='' such='' string'.<='' p=''>
5. enquanto isso1
- incrementaremos o primeiro iterador.
6. enquanto isto2
- incrementaremos o segundo iterador.
7. declarar booleano f para armazenar c é maior que v ou não para verificar se as consoantes estarão em primeiro lugar ou a vogal.
8. se v for igual a c:
- se f for verdadeiro s[i]=it2+'a' --mp2[it2] e itere através de mp2 até que mp2[it2] seja igual a zero e incremente it2 f=false .
- outro s[i]=it1+'a' --mp1[it1] e itere através de mp1 até que mp1[it1] seja igual a zero e incremente it1 f=true .
- incremento de i.
9. enquanto it1 é menor que mp1.size() e it2 é menor que mp2.size() e i é menor que n:
10. verifique a condição em que resta apenas uma vogal ou consoante.
11. retorne a string.
Implementação da abordagem:
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));
Saída
gekes
Complexidade de tempo: Sobre)
Espaço Auxiliar: Sobre)
Esta abordagem é contribuída por Prateek Kumar Singh (pkrsingh025).
tabela hash para armazenar a ocorrência de vogais e consoantes, aplique a força bruta simples.
Passos para resolver o problema:
1. declare os vetores mp1 e mp2 para armazenar a ocorrência e as variáveis v e c para armazenar a contagem de vogais e consoantes.
2. iterar pela string e aumentar a ocorrência de vogais e consoantes na tabela hash.
3. se a diferença absoluta de v e c for maior que 1, neste caso string com vogal e consoante alternadas não é possível então retornaremos 'no='' such='' string'.<='' p=''> tabela hash para armazenar a ocorrência de vogais e consoantes, aplique a força bruta simples.
Passos para resolver o problema:
1. declare os vetores mp1 e mp2 para armazenar a ocorrência e as variáveis v e c para armazenar a contagem de vogais e consoantes.
2. iterar pela string e aumentar a ocorrência de vogais e consoantes na tabela hash.
3. se a diferença absoluta de v e c for maior que 1, neste caso string com vogal e consoante alternadas não é possível então retornaremos 'no='' such='' string'.<='' p=''> tabela hash para armazenar a ocorrência de vogais e consoantes, aplique a força bruta simples.
Passos para resolver o problema:
1. declare os vetores mp1 e mp2 para armazenar a ocorrência e as variáveis v e c para armazenar a contagem de vogais e consoantes.
2. iterar pela string e aumentar a ocorrência de vogais e consoantes na tabela hash.
3. se a diferença absoluta de v e c for maior que 1, neste caso string com vogal e consoante alternadas não é possível então retornaremos 'no='' such='' string'.<='' p=''> tabela hash para armazenar a ocorrência de vogais e consoantes, aplique a força bruta simples.
Passos para resolver o problema:
1. declare os vetores mp1 e mp2 para armazenar a ocorrência e as variáveis v e c para armazenar a contagem de vogais e consoantes.
2. iterar pela string e aumentar a ocorrência de vogais e consoantes na tabela hash.
3. se a diferença absoluta de v e c for maior que 1, neste caso string com vogal e consoante alternadas não é possível então retornaremos 'no='' such='' string'.<='' p=''> tabela hash para armazenar a ocorrência de vogais e consoantes, aplique a força bruta simples.
Passos para resolver o problema:
1. declare os vetores mp1 e mp2 para armazenar a ocorrência e as variáveis v e c para armazenar a contagem de vogais e consoantes.
2. iterar pela string e aumentar a ocorrência de vogais e consoantes na tabela hash.
3. se a diferença absoluta de v e c for maior que 1, neste caso string com vogal e consoante alternadas não é possível então retornaremos 'no='' such='' string'.<='' p=''> tabela hash para armazenar a ocorrência de vogais e consoantes, aplique a força bruta simples.
Passos para resolver o problema:
1. declare os vetores mp1 e mp2 para armazenar a ocorrência e as variáveis v e c para armazenar a contagem de vogais e consoantes.
2. iterar pela string e aumentar a ocorrência de vogais e consoantes na tabela hash.
3. se a diferença absoluta de v e c for maior que 1, neste caso string com vogal e consoante alternadas não é possível então retornaremos 'no='' such='' string'.<='' p=''> Criar questionário