Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MrBlaise/7022802 to your computer and use it in GitHub Desktop.
Save MrBlaise/7022802 to your computer and use it in GitHub Desktop.
Emelt informatika érettségi 2010 október - Anagramma / Solution for Advanced Computer Science Matura 2010 october (Hungary)
#!/usr/bin/env python3
# Rostás Balázs - Emelt informatika érettségi 2010 október - Anagramma
def anagrammaKereses(keresettSzo, szavak):
anagramma = True
anagrammaSzavak = []
for szo in szavak:
for char in szo:
if char not in keresettSzo:
anagramma = False
break
if anagramma and len(szo) == len(keresettSzo):
anagrammaSzavak.append(szo)
else:
anagramma = True
return anagrammaSzavak
# 1. feladat:
print("1. feladat:")
szovegBe = input("Kérem adjon meg egy szöveget: ")
karakterSzam = []
for char in szovegBe:
if char.lower() not in karakterSzam:
karakterSzam.append(char.lower())
print("Összesen", len(karakterSzam), "különböző karakter van a szövegben.")
# 2. feladat:
fajlBe = open("szotar.txt", "r")
szavak = [sor.strip() for sor in fajlBe]
fajlBe.close()
print("\n2. feladat - szavak.txt beolvasása - KÉSZ!")
# 3. feladat:
fajlKi = open("abc.txt", "w")
[ print("".join(sorted(szo)), file = fajlKi ) for szo in szavak ]
fajlKi.close()
print("\n3. feladat - abc.txt fájl létrehozása - KÉSZ!")
# 4. feladat:
print("\n4. feladat:")
elsoSzo = input("Kérem adjon meg egy szót: ")
masodikSzo = input("Kérem adjon meg egy másik szót: ")
anagramma = True
for char in elsoSzo:
if char.lower() not in masodikSzo.lower():
print("Nem anagramma")
anagramma = False
break
if anagramma:
print("Anagramma")
# 5. feladat:
print("\n5. feladat:")
szoBe = input("Kérem adjon meg egy szót az anagrammák kilistázásához: ")
anagrammaSzavak = anagrammaKereses(szoBe, szavak)
if len(anagrammaSzavak) != 0:
print("\n".join(anagrammaSzavak))
else:
print("Nincs a szótárban anagramma")
# 6. feladat:
print("\n6. feladat:")
maxEddig = 0
hoszSzavak = []
hoszSzavakRend = []
for szo in szavak:
if maxEddig < len(szo):
maxEddig = len(szo)
for szo in szavak:
if maxEddig == len(szo):
hoszSzavak.append(szo)
for szo in hoszSzavak:
keresettSzo = anagrammaKereses(szo, szavak)
if len(keresettSzo) != 0:
for szoKeresett in keresettSzo:
if szoKeresett not in hoszSzavakRend:
hoszSzavakRend.append(szoKeresett)
print("\n".join(hoszSzavakRend))
# 7. feladat:
rendezettszavak = sorted(list({ ''.join(sorted(szó)) for szó in szavak }), key=len)
hossz = len(sorted(szavak, key=len)[0]) # A legrövidebb szó hosszára állítjuk
fajlKi = open('rendezve.txt', 'w')
for szó in rendezettszavak:
if len(szó) > hossz: # Ha nőtt a szó hossza az előzőhöz képest
print('', file=fajlKi)
hossz = len(szó)
for anagramma in anagrammaKereses(szó, szavak):
print(anagramma, '', end='', file=fajlKi)
print('', file=fajlKi) # Sortörés az egymás anagrammáit tartalmazó sor végén
fajlKi.close()
print("\n7. feladat - rendezve.txt létrehozása - KÉSZ!")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment