Fácil 0 resueltos 0% de aceptación

Acronym Generator

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

Lo que aprenderás

  • Dividir el texto por espacios y guiones
  • Tomar la primera letra de cada palabra
  • Pasar las letras a mayúsculas

Problema

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.

Restricciones

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.

Ejemplos

Ejemplo 1
Entrada:
phrase = "central-processing unit"

Salida esperada:
expected = "CPU"
Entrada:
std::string phrase = "central-processing unit";

Salida esperada:
std::string expected = "CPU";
Entrada:
string phrase = "central-processing unit";

Salida esperada:
string expected = "CPU";

Explicación

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

Ejemplo 2
Entrada:
phrase = "don't repeat yourself"

Salida esperada:
expected = "DRY"
Entrada:
std::string phrase = "don't repeat yourself";

Salida esperada:
std::string expected = "DRY";
Entrada:
string phrase = "don't repeat yourself";

Salida esperada:
string expected = "DRY";

Explicación

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

Cómo abordarlo

Inténtalo primero por tu cuenta y luego abre las pistas una a una.

Pista 1

Trata los espacios y los guiones como separadores de palabras, pero ignora los dígitos y otra puntuación dentro o alrededor de las palabras.

Pista 2

Busca la primera letra después de cada separador y ponla en mayúscula.

Pista 3

Las apóstrofes dentro de una palabra no deben crear una nueva palabra, y hay que saltar los fragmentos vacíos.

Complejidad esperada

tiempo O(n), espacio extra O(n)

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.