-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathPrograma 5_15.py
More file actions
54 lines (51 loc) · 1.7 KB
/
Programa 5_15.py
File metadata and controls
54 lines (51 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# -*- coding: utf-8 -*-
"""
@author: guardati
Problema 5.18
Determina si dos palabras son anagramas.
"""
def es_anagrama(pal1, pal2):
""" Determina si dos palabras son anagramas.
Parámetros:
pal1: de tipo str.
pal2: de tipo str.
Regresa:
True si son anagramas, False en caso contrario.
"""
n = len(pal1)
if n == len(pal2):
indice = 0
anagrama = True
while indice < n and anagrama:
try:
pos = pal2.index(pal1[indice])
pal2 = pal2[0: pos] + pal2[pos+1:]
except:
anagrama = False
indice += 1
else:
anagrama = False
return anagrama and len(pal2) == 0
# =============================================================================
# Algunas pruebas de la función es_anagrama
# =============================================================================
# CP1: se dan dos palabras que son anagramas.
if es_anagrama('frase', 'fresa'):
print('\nCP1: "frase y fresa" son anagramas.')
else:
print('\nCP1: "frase y fresa" no son anagramas.')
# CP2: se dan dos palabras que no son anagramas.
if es_anagrama('mar', 'arena'):
print('CP2: "mar y arena" son anagramas.')
else:
print('CP2: "mar y arena" no son anagramas.')
# CP3: se dan dos palabras que no son anagramas.
if es_anagrama('aparta', 'raptar'):
print('CP3: "aparta y raptar" son anagramas.')
else:
print('CP3: "aparta y raptar" no son anagramas.')
# CP4: se dan dos cadenas vacías.
if es_anagrama('', ''):
print('CP4: dos cadenas vacías son anagramas.')
else:
print('CP4: dos cadenas vacías no son anagramas.')