Last active
April 4, 2022 16:58
-
-
Save dimnikolos/4436803b305bc742d6a66e7fa56c84ef to your computer and use it in GitHub Desktop.
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
def replaceAccents(l): | |
""" | |
replace greek accents | |
""" | |
l = l.lower() | |
rDict = {'ά':'α','ό':'ο','ύ':'υ','ϋ':'υ','ΰ':'υ','έ':'ε','ί':'ι', | |
'ϊ':'ι','ΐ':'ι','ή':'η','ώ':'ω','ς':'σ'} | |
retStr = '' | |
for x in l: | |
retStr += (x if x not in rDict else rDict[x]) | |
return(retStr) | |
def isin(letters,string): | |
""" | |
returns True if all letters are in string | |
and False otherwise | |
""" | |
for l in letters: | |
if l not in string: | |
return(False) | |
return(True) | |
def minl(letters): | |
""" | |
prints words that have all the letters in letters | |
and tries to locate the smallest one | |
""" | |
with open('el_GR.dic','r',encoding = 'iso-8859-7') as lexiko: | |
#dictionary from | |
#https://raw.githubusercontent.com/LibreOffice/dictionaries/master/el_GR/el_GR.dic | |
lexeis = lexiko.read().splitlines() | |
minword = " "*30 | |
for l in lexeis: | |
if l.upper() == l: | |
continue | |
if isin(remaining,replaceAccents(l.lower())): | |
if len(l)<=len(minword)+2: | |
print(l) | |
if len(l)<=len(minword): | |
print(l) | |
minword = l | |
return(minword) | |
allLetters = ['α','β','γ','δ','ε','ζ','η','θ','ι','κ','λ','μ','ν', | |
'ξ','ο','π','ρ','σ','τ','υ','φ','χ','ψ','ω'] | |
tillNow = input("Φράση μέχρι τώρα...>") | |
remaining = [x for x in allLetters if x not in replaceAccents(tillNow.lower())] | |
print("".join(remaining)) | |
print("Min word is :" + minl(remaining)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment