Created
October 17, 2013 10:45
-
-
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)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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