Retour aux défis
Facile 0 résolus 0 % de réussite

Acronym Generator

Create an acronym from the first letter of every word, in uppercase.

Ce que vous allez apprendre

  • Découper un texte sur les espaces et les tirets
  • Prendre la première lettre de chaque mot
  • Mettre les lettres en majuscules

Problème

Create an acronym from the first letter of every word, in uppercase. Spaces and hyphens separate words. Remove every other punctuation mark and digit without adding a separator; an apostrophe inside a word does not start another word. Ignore empty pieces.

Implement acronym_generator(phrase).

Input

phrase: The phrase to shorten.

Output

Return the uppercase initials in their original order.

Contraintes

0 ≤ phrase length ≤ 10,000. Input contains ASCII letters, digits, spaces, and punctuation; no tabs or line breaks. A phrase with no letters returns empty text.

Exemples

Exemple 1
Entrée :
phrase = "central-processing unit"

Sortie attendue :
expected = "CPU"
Entrée :
std::string phrase = "central-processing unit";

Sortie attendue :
std::string expected = "CPU";
Entrée :
string phrase = "central-processing unit";

Sortie attendue :
string expected = "CPU";

Explication

The hyphen and space separate central, processing, and unit. Their initials are C, P, and U.

Exemple 2
Entrée :
phrase = "don't repeat yourself"

Sortie attendue :
expected = "DRY"
Entrée :
std::string phrase = "don't repeat yourself";

Sortie attendue :
std::string expected = "DRY";
Entrée :
string phrase = "don't repeat yourself";

Sortie attendue :
string expected = "DRY";

Explication

Remove the apostrophe to obtain dont. It is still one word, followed by repeat and yourself.

Comment l'aborder

Essayez d'abord seul, puis ouvrez les indices un par un.

Indice 1

Traitez les espaces et les tirets comme des séparateurs de mots, mais ignorez les chiffres et les autres ponctuations à l’intérieur ou autour des mots.

Indice 2

Cherchez la première lettre après chaque séparateur et mettez-la en majuscule.

Indice 3

Les apostrophes dans un mot ne doivent pas créer un nouveau mot, et les morceaux vides doivent être ignorés.

Complexité attendue

temps O(n), espace supplémentaire O(n)

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.