Vowel Streaks V26417


Statement
 

pdf   zip   main.cc

thehtml

Una paraula "extruida" és aquella en que té una o més vocals, i alguna d’elles té un nombre de repeticions major que 1. Per exemple, "boneeees" és una paraula extruida i "miiiiira" i "ooooleeee" també. No són paraules extruides: "pa", "sol", i "torus".

Donada una paraula "extruida", les seves repeticions de vocals es poden representar amb un vector. Si la vocal v és la i-èssima de la paraula, la casella i−1 del vector contindrà el nombre de repeticions de v. És a dir, les repeticions de la primera vocal van a la casella 0 del vector, les de la segona vocal a la casella 1, etc. El vector, doncs, tindrà un tamany igual que el nombre de vocals de la paraula (que pot ser 0).

Feu una funció vowel_streaks que, donada una paraula "extruida", retorna el vector de les repeticions de vocals que la defineixen. La declaració és la següent:

/**
 * @brief   Retorna un vector amb els nombres de repeticions de 
 *          les vocals de la paraula, per ordre d'aparició.
 *
 * Exemples:
 *   vowel_streaks("eeoo") -> [2, 2]
 *   vowel_streaks("aeeiouu") -> [1, 2, 1, 1, 2]
 *   vowel_streaks("paraaulaaa") -> [1, 2, 1, 3]
 *   vowel_streaks("aaaabrakadaaavraaaa") -> [4, 1, 1, 3, 4]
 *
 * @returns Un vector d'enters a on cada enter v[i] és el nombre 
 *          de repeticions de la vocal (i+1)-èssima.
 * 
 * @pre     `word` està formada per caràcters en minúscules i pot 
 *          ser una paraula no "extruida"
 */
vector<int> vowel_streaks(string word);

Es pot suposar que les paraules totes estan compostes de lletres minúscules sense accents ni signes de puntuació.

Observació

Descarregueu el programa principal, que té la funció declarada, i treballeu directament en aquest fitxer. Un cop feta la funció podeu enviar al Jutge el fitxer sencer perquè la funció main s’ignorarà.

Recordeu que un string és, en essència, un vector de caràcters, i té molts mètodes equivalents als d’un vector.

Entrada

Una seqüència de paraules, algunes "extruides" i altres no. La seqüència no té sentinella. El programa principal ja fa aquesta lectura i crida la funció vowel_streaks per a cadascuna.

Sortida

El programa principal ja s’encarrega de la sortida, no cal programar res d’això. La sortida és com segueix. Per a cada paraula de l’entrada es produeix una línia a la sortida. Si la paraula no té vocals, es mostra un guió. Si la paraula té vocals, es mostra la seqüència de repeticions tal com són retornades per vowel_streaks, amb els nombres separats per espais.

Public test cases
  • Input/Output

    vowel_streaks(a) → 1
    vowel_streaks(be) → 1
    vowel_streaks(auu) → 1 2
    vowel_streaks(xkcd) → -
    vowel_streaks(tomaaa) → 1 3
    vowel_streaks(toooma) → 3 1
    vowel_streaks(adeeeeu) → 1 4 1
    vowel_streaks(siuuuuuu) → 1 6
    vowel_streaks(aaaaeeeeiiii) → 4 4 4
    vowel_streaks(oeeoeoeoeeeee) → 1 2 1 1 1 1 1 5
  • Information
    Author
    Pau Fernández
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++