Mayúscula la primera y la última letra de cada palabra en una línea

En este artículo, vamos a aprender cómo aprovechar primera y la última letra de cada palabra en una línea de entrada ?

Planteamiento del problema:

Dada una línea de entrada, en mayúscula la primera y la última letra de cada palabra en la línea dada . Está previsto que la línea de entrada está en minúsculas.

Solución:

El algoritmo básico es hacer un seguimiento de los espacios y capitalizar la carta antes y después del espacio de espacio. Además, la primera letra y la última letra de la línea deberán escribirse con mayúscula.

algunas cosas más que deben ser tenidas en cuenta de forma que:

  1. más de una ocurrencia del espacio entre dos palabras.
  2. Puede haber palabra de una sola letra como ‘a’ , que necesita ser capitalizado.
  3. Puede haber palabra de dos letras como ‘yo’ , donde tanto las letras deben ser mayúsculas.

Algoritmo:

  1. Crear una tabla hash.
  2. índice Insertar de primera letra, es decir, 0 y el índice de la última letra, es decir, longitud-1 . longitud ser la longitud de línea de entrada.
  3.     For i=0:length-1
    Find index of spaces in the line
    If index before spaces are not in hash table
    Insert into hash table
    If index after spaces are not in hash table
    Insert into hash table

  4. mayúscula los índices presentes en el tabla hash
    línea [índice] – = 32;
  5. // valor ASCII de menor case carta – valor ASCII de correspondiente carta case superior = 32
  6. Imprimir la línea de entrada convertida

La inclusión de tabla hash en el programa nos ayuda a evitar la inserción de duplicado índices. De lo contrario, las esquinas casos de prueba pueden fallar.

programa en C ++ para capitalizar primera y la última letra de cada palabra en una línea

#include <bits/stdc++.h>
using namespace std;
void capitalize(char* arr,int i){
//ascii value of each lower case letter-ascii value
//of each uppercase letter=32
//i is the length of line
unordered_set<int> table;
table.insert(0); //index of first letter of line
table.insert(i-1);//index of last letter of line
for(int j=1;j<i;j++){
if(arr[j]==' '){
// last letter of word is before
//space & first letter of word is after space
//check index already present in hash table or not
if(table.find(j-1)==table.end())
table.insert(j-1); //if not insert index
//check index already present in hash table or not
if(table.find(j+1)==table.end())
table.insert(j+1); //if not insert index
}
}
//capitalize
for(auto it=table.begin();it!=table.end();it++)
arr[*it]-=32;
printf("converted input line is: ");
//printing
for(int j=0;j<i;j++)
printf("%c",arr[j]);
printf("n");
}
int main(){
//store the input line
char arr[100];
char c;
int i=0;
printf("input the line.....n");
scanf("%c",&c);
while(c!='n'){
arr[i++]=c;
scanf("%c",&c);
}
capitalize(arr,i);
return 0;
}

salida

First run:
input the line.....
hello world
converted input line is: HellO WorlD
Second run:
input the line.....
includehelp is a great paltform for geeks
converted input line is: IncludehelP IS A GreaT PaltforM FoR GeekS

mensajes recomendados

  • RLE (encontrar / frecuencia de impresión de letras en una cadena)
  • Ordenar una serie de 0s, 1s y 2 de en tiempo lineal complejidad
  • subarreglo Finding con determinada suma
  • 1 [0] 1 patrón Conde
  • Greedy estrategia para resolver los principales problemas del algoritmo
  • problema de secuenciación de empleo
  • punto de salida en una matriz
  • Generar código Gray secuencias
  • números Picking
  • la codificación de longitud (encontrar / frecuencia de impresión de las letras en una cadena)
  • Conde y Say secuencia
  • común más largo prefijo
  • Conde Subcadenas
  • Número siguiendo el patrón
  • Siguiente Permutación


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *