Skip to content

Commit 3a802cf

Browse files
committed
2 parents f0f19fc + e70ba4b commit 3a802cf

File tree

3 files changed

+91
-3
lines changed

3 files changed

+91
-3
lines changed

.github/pull_request_template.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
Asegúrate de cumplir los siguientes puntos antes de realizar la "Pull Request":
66

77
- [ ] El título de mi Pull Request sigue este formato: "Reto #[número] - [lenguaje_utilizado]". *(Ej: Reto #0 - Kotlin")*
8-
- [ ] El nombre el fichero que se corresponde con el de mi usuario en GitHub más la extensión del lenguaje. *(Ej: mouredev.kt)*
8+
- [ ] El nombre el fichero se corresponde con el de mi usuario en GitHub más la extensión del lenguaje. *(Ej: mouredev.kt)*
99
- [ ] El fichero de corrección se encuentra dentro del directorio del ejercicio y en una carpeta con el nombre del lenguaje de programación utilizado en minúsculas. *(Ej: Reto #0/kotlin/mouredev.kt)*
1010
- [ ] He revisado que el nombre del directorio del lenguaje no es conflictivo:
1111
- c#, no csharp
@@ -17,5 +17,4 @@ Asegúrate de cumplir los siguientes puntos antes de realizar la "Pull Request":
1717
## Información
1818

1919
* Tienes toda la información sobre los retos semanales en [retosdeprogramacion.com/semanales2023](https://retosdeprogramacion.com/semanales2023).
20-
* Cada semana se realizará la corrección en directo y publicación de un nuevo reto en [twitch.tv/mouredev](https://twitch.tv/mouredev).
21-
* Recuerda que tienes un grupo de apoyo llamado "reto-semanal" en [Discord](https://discord.gg/mouredev).
20+
* Recuerda que tienes un grupo de apoyo llamado "ejercicios-logica" en [Discord](https://discord.gg/mouredev).
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/*
2+
* Dada una URL con parámetros, crea una función que obtenga sus valores.
3+
* No se pueden usar operaciones del lenguaje que realicen esta tarea directamente.
4+
*
5+
* Ejemplo: En la url https://retosdeprogramacion.com?year=2023&challenge=0
6+
* los parámetros serían ["2023", "0"]
7+
*/
8+
9+
10+
function getQueryParams(param_url) {
11+
if(!param_url.includes("?")) return "No hay parámetros en la URL";
12+
let parts = param_url.split("?")[1].split("&");
13+
let url_params = parts.map(param => param.split("=")[1]);
14+
return url_params;
15+
}
16+
17+
console.log(getQueryParams("https://retosdeprogramacion.com?year=2023&challenge=0"));
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
2+
/*
3+
* Crea 3 funciones, cada una encargada de detectar si una cadena de
4+
* texto es un heterograma, un isograma o un pangrama.
5+
* - Debes buscar la definición de cada uno de estos términos.
6+
*/
7+
8+
let word = "brickfade";
9+
10+
function isHeterogram(text) {
11+
//tenemos que eliminar los espacios en blanco
12+
text = text.toLowerCase().replace(/[^a-z]/g, '');
13+
for (let i = 0; i < text.length; i++) {
14+
for (let j = i + 1; j < text.length; j++) {
15+
if (text[i] === text[j]) {
16+
return false;
17+
}
18+
}
19+
}
20+
return true;
21+
}
22+
23+
24+
function isIsogram(text) {
25+
//tenemos que eliminar los espacios en blanco porque for y set lo cuentan
26+
text = text.toLowerCase().replace(/[^a-z]/g, '');
27+
let referenceCount = 1;
28+
const lettersSet = new Set();
29+
for (let i = 0; i < text.length; i++) {
30+
if (lettersSet.has(text[i])) {
31+
continue;
32+
} else {
33+
lettersSet.add(text[i]);
34+
}
35+
let repeatedCount = 1;
36+
for (let j = i + 1; j < text.length; j++) {
37+
if (text[i] === text[j]) {
38+
if (i === 0) {
39+
referenceCount++;
40+
} else {
41+
repeatedCount++;
42+
}
43+
}
44+
}
45+
if (i > 0 && referenceCount != repeatedCount) {
46+
return false;
47+
}
48+
}
49+
return true;
50+
}
51+
52+
function isPangram(text) {
53+
let alphabet = 'abcdefghijklmnopqrstuvwxyz';
54+
let alphabet_size = alphabet.length;
55+
if (text.length >= alphabet_size) {
56+
const alphabet_set = new Set((text.toLowerCase()).replace(/[^a-z]/g, ''));
57+
// console.log(alphabet_set);
58+
// console.log(alphabet_set.size);
59+
if (alphabet_set.size === alphabet_size) {
60+
return true;
61+
}
62+
}
63+
return false;
64+
}
65+
66+
67+
console.log(isHeterogram(word) ? "es un heterograma" : "no es heterograma");
68+
console.log(isIsogram(word) ? "es un isograma" : "no es isograma");
69+
console.log(isPangram(word) ? "es un pangrama" : "no es pangrama");
70+
71+
72+

0 commit comments

Comments
 (0)