Skip to content

Commit

Permalink
Merge branch 'mouredev:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
vandresca authored Jul 30, 2023
2 parents 918ff90 + 0d9c842 commit 96f383f
Show file tree
Hide file tree
Showing 5 changed files with 162 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Escribe un programa que reciba un texto y transforme lenguaje natural a
# "lenguaje hacker" (conocido realmente como "leet" o "1337"). Este lenguaje
# se caracteriza por sustituir caracteres alfanuméricos.
# - Utiliza esta tabla (https://www.gamehouse.com/blog/leet-speak-cheat-sheet/)
# con el alfabeto y los números en "leet".
# (Usa la primera opción de cada transformación. Por ejemplo "4" para la "a")

LEETCODE = {
"a": "4",
"b": "I3",
"c": "[",
"d": ")",
"e": "3",
"f": "|=",
"g": "&",
"h": "#",
"i": "1",
"j": ",_|",
"k": ">|",
"l": "1",
"m": "/\/\\",
"n": "^/",
"o": "0",
"p": "|*",
"q": "(_,)",
"r": "I2",
"s": "5",
"t": "7",
"u": "(_)",
"v": "\\/",
"w": "\/\/",
"x": "><",
"y": "j",
"z": "2"
}


def translate_to_leetcode(text: str) -> str:
return "".join([LEETCODE.get(char.lower(), char) for char in text])


def main():
text = input(translate_to_leetcode("Escribe un texto: "))
print(translate_to_leetcode(text))


if __name__ == "__main__":
main()
16 changes: 16 additions & 0 deletions Retos/Reto #10 - LA API [Media]/rust/marcoatrs.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
use std::collections::HashMap;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let url = "https://dog.ceo/api/breeds/image/random";

// Realizar la solicitud GET
let response = reqwest::get(url)
.await?
.json::<HashMap<String, String>>()
.await?;

println!("{:#?}", response);

Ok(())
}
14 changes: 14 additions & 0 deletions Retos/Reto #11 - URL PARAMS [Fácil]/python/ShinMugenNoKabe.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
def get_paramteres(url: str) -> list[str]:
if not "?" in url:
return []

query = url.split("?")[1]
params = query.split("&")

return [param.split("=")[1] for param in params]


if __name__ == "__main__":
result = get_paramteres("https://retosdeprogramacion.com?year=2023&challenge=0")
assert result == ["2023", "0"]
print(result)
23 changes: 23 additions & 0 deletions Retos/Reto #27 - CUENTA ATRÁS [Media]/java/asjordi.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
public class Countdown {

public static void main(String[] args) {
execute(10, 6);
}

public static void execute(int start, int seconds) {
if (start > 0 && seconds > 0){
for (int i = start; i >= 0; i--) {
System.out.println(i);
if (i == 0) break;
try{
Thread.sleep(seconds * 1000);
} catch (Exception e){
System.out.println("There was an error: " + e.getMessage());
}
}
} else{
throw new RuntimeException("Los parámetros tienen que ser enteros positivos mayores a 0");
}
}

}
61 changes: 61 additions & 0 deletions Retos/Reto #30 - EL TECLADO T9 [Media]/javascript/test0n3.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
//
// Los primeros dispositivos móviles tenían un teclado llamado T9
// con el que se podía escribir texto utilizando únicamente su
// teclado numérico (del 0 al 9).
//
// Crea una función que transforme las pulsaciones del T9 a su
// representación con letras.
// - Debes buscar cuál era su correspondencia original.
// - Cada bloque de pulsaciones va separado por un guión.
// - Si un bloque tiene más de un número, debe ser siempre el mismo.
// - Ejemplo:
// Entrada: 6-666-88-777-33-3-33-888
// Salida: MOUREDEV
//

const cellphoneDial = (input) => {
const dial = {
1: "1",
2: "ABC2",
3: "DEF3",
4: "GHI4",
5: "JKL5",
6: "MNO6",
7: "PQRS7",
8: "TUV8",
9: "WXYZ9",
0: " 0",
"*": "*",
"#": "#",
};

return input
.split("-")
.map((char) => {
let char_pos = (char.length % dial[char[0]].length) - 1;
return dial[char[0]].slice(char_pos)[0];
})
.join("");
};

const tests = {
inputs: [
"6-666-88-777-33-3-33-888",
"8-444-6-33-0-8-666-0-7777-555-33-33-7",
"6-999-0-66-88-6-22-33-777-0-444-7777-0-99999-4444-77777-0-4444-2222-2222-0-3333-2222-4444",
"6-99999999-0-8-33-777777777-8",
],
outputs: ["MOUREDEV", "TIME TO SLEEP", "MY NUMBER IS 947 422 324", "MY TEST"],
};

let errors = 0;
tests.inputs.forEach((input, index) => {
const result = cellphoneDial(input);
if (result != tests.outputs[index]) {
errors += 1;
console.log(
`Error - input: ${input}, expected: ${tests.outputs[index]}, result: ${result}`
);
}
});
console.log(`Errors: ${errors}`);

0 comments on commit 96f383f

Please sign in to comment.