Skip to content

Commit f2a7d53

Browse files
committed
#4 - Python - Extra
1 parent 1735ab3 commit f2a7d53

File tree

1 file changed

+45
-0
lines changed
  • Roadmap/04 - CADENAS DE CARACTERES/python

1 file changed

+45
-0
lines changed

Roadmap/04 - CADENAS DE CARACTERES/python/Dkp-Dev.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,48 @@
7878
print(x1.isalnum()) # Si la cadena es alfanumerica (contiene letras y/o numeros)
7979
print(x6.isalnum())
8080

81+
"""
82+
DIFICULTAD EXTRA (opcional):
83+
* Crea un programa que analice dos palabras diferentes y realice comprobaciones
84+
* para descubrir si son:
85+
* - Palíndromos (palabras que se leen igual aunque se posiciones en orden inverso como radar o salas)
86+
* - Anagramas (palabras que contiene las mismas letras pero en diferente orden)
87+
* - Isogramas (palabras que no tienen mas de una letra repetida)
88+
89+
"""
90+
91+
def check(cadena1: str,cadena2: str):
92+
93+
# Palindromo
94+
print(f"Es {cadena1} un palindromo?: {cadena1 == cadena1[::-1]}") # Mediante el slicing comprobamos si la cadena se lee igual en reversa
95+
print(f"Es {cadena2} un palindromo?: {cadena2 == cadena2[::-1]}")
96+
97+
# Anagramas
98+
print(f"Es {cadena1} un anagrama de {cadena2}?: {sorted(cadena1) == sorted(cadena2)}") # Se ordenan las cadenas y se comprueban los characteres
99+
100+
# Isograma
101+
102+
def isograma(cadena:str) -> bool: # Funcion que recibe una cadena y arroja un booleano
103+
104+
cadena_dict = dict() # Primero un dict de la cadena
105+
for letras in cadena:
106+
cadena_dict[letras] = cadena_dict.get(letras, 0) + 1
107+
108+
isograma = True
109+
valor = list(cadena_dict.values()) # Lista de values
110+
isograma_len = valor[0]
111+
for cadena_count in valor: # Se cuentan los values
112+
if cadena_count != isograma_len: # Se comprueban ambas listas
113+
isograma = False
114+
break
115+
116+
return isograma
117+
118+
print(f"Es {cadena1} un isograma? {isograma(cadena1)}")
119+
print(f"Es {cadena2} un isograma? {isograma(cadena2)}")
120+
121+
122+
123+
124+
check("radar","quesoqueso")
125+
check("amor","roma")

0 commit comments

Comments
 (0)