Skip to content

Commit 93bb1b8

Browse files
committed
#4 - TypeScript
1 parent 5aca86b commit 93bb1b8

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
/*
2+
* EJERCICIO:
3+
* Muestra ejemplos de todas las operaciones que puedes realizar con cadenas de caracteres
4+
* en tu lenguaje. Algunas de esas operaciones podrían ser (busca todas las que puedas):
5+
* - Acceso a caracteres específicos, subcadenas, longitud, concatenación, repetición, recorrido,
6+
* conversión a mayúsculas y minúsculas, reemplazo, división, unión, interpolación, verificación...
7+
*
8+
* DIFICULTAD EXTRA (opcional):
9+
* Crea un programa que analice dos palabras diferentes y realice comprobaciones
10+
* para descubrir si son:
11+
* - Palíndromos
12+
* - Anagramas
13+
* - Isogramas
14+
*/
15+
16+
// Operaciones comunes con cadenas de caracteres
17+
18+
// Acceso a caracteres específicos
19+
const cadena: string = "Hola, mundo!";
20+
console.log("Carácter en la posición 0:", cadena[0]);
21+
22+
// Subcadenas
23+
const subcadena: string = cadena.substring(2, 6);
24+
console.log("Subcadena:", subcadena);
25+
26+
// Longitud de la cadena
27+
console.log("Longitud de la cadena:", cadena.length);
28+
29+
// Concatenación
30+
const otraCadena: string = " Qué tal?";
31+
const cadenaConcatenada: string = cadena + otraCadena;
32+
console.log("Cadena concatenada:", cadenaConcatenada);
33+
34+
// Repetición
35+
const cadenaRepetida: string = cadena.repeat(3);
36+
console.log("Cadena repetida 3 veces:", cadenaRepetida);
37+
38+
// Recorrido
39+
for (let i: number = 0; i < cadena.length; i++) {
40+
console.log("Carácter en posición", i, ":", cadena[i]);
41+
}
42+
43+
// Conversión a mayúsculas y minúsculas
44+
const mayusculas: string = cadena.toUpperCase();
45+
const minusculas: string = cadena.toLowerCase();
46+
console.log("Mayúsculas:", mayusculas);
47+
console.log("Minúsculas:", minusculas);
48+
49+
// Reemplazo
50+
const nuevaCadena: string = cadena.replace("mundo", "amigo");
51+
console.log("Cadena con reemplazo:", nuevaCadena);
52+
53+
// División
54+
const palabras: string[] = cadena.split(" ");
55+
console.log("Palabras divididas:", palabras);
56+
57+
// Unión
58+
const union: string = palabras.join("-");
59+
console.log("Palabras unidas con guiones:", union);
60+
61+
// Interpolación
62+
const nombre: string = "Juan";
63+
const edad: number = 30;
64+
const mensaje: string = `Hola, me llamo ${nombre} y tengo ${edad} años.`;
65+
console.log("Mensaje interpolado:", mensaje);
66+
67+
// Verificación
68+
const contieneHola: boolean = cadena.includes("Hola");
69+
console.log("¿La cadena contiene 'Hola'?", contieneHola);
70+
71+
// Programa que verifica palíndromos, anagramas e isogramas
72+
73+
function esPalindromo(palabra: string): boolean {
74+
const palabraInvertida: string = palabra.split("").reverse().join("");
75+
return palabra === palabraInvertida;
76+
}
77+
78+
function esAnagrama(palabra1: string, palabra2: string): boolean {
79+
const ordenPalabra1: string = palabra1.split("").sort().join("");
80+
const ordenPalabra2: string = palabra2.split("").sort().join("");
81+
return ordenPalabra1 === ordenPalabra2;
82+
}
83+
84+
function esIsograma(palabra: string): boolean {
85+
const caracteresUnicos: Set<string> = new Set(palabra);
86+
return palabra.length === caracteresUnicos.size;
87+
}
88+
89+
// Ejemplos
90+
const palabra1: string = "oso";
91+
const palabra2: string = "soso";
92+
console.log(`"${palabra1}" es palíndromo:`, esPalindromo(palabra1));
93+
console.log(`"${palabra1}" es anagrama de "${palabra2}":`, esAnagrama(palabra1, palabra2));
94+
console.log(`"${palabra1}" es isograma:`, esIsograma(palabra1));
95+
96+
// Visita mi repo en GitHub para ver y correr los tests de este código --> https://github.com/marcode24/weekly-challenges

0 commit comments

Comments
 (0)