forked from miczar1/djfz-24_25
Improved solution
This commit is contained in:
parent
58e8d6c4ad
commit
a5ec559880
File diff suppressed because one or more lines are too long
@ -1,27 +1,34 @@
|
||||
import sys
|
||||
|
||||
# return if the sentence contains word pies
|
||||
# '19xx' literally would be accepted as well but we won't tell anyone
|
||||
def solve(lines):
|
||||
res = []
|
||||
for l in lines:
|
||||
# first one didnt work what about the other dates?
|
||||
i = 0
|
||||
s = l
|
||||
while i != -1:
|
||||
if i+7 < len(s):
|
||||
if s[i:i+2] == "19" and s[i+2].isdigit() and s[i+3].isdigit() and s[i+4:i+7] == " r.":
|
||||
res.append(l)
|
||||
break
|
||||
i += 2 # skipping current date
|
||||
s = s[i:]
|
||||
i = s.find("19")
|
||||
return res
|
||||
def detect_date(s):
|
||||
date_f = "19XX r."
|
||||
date_l = len(date_f)
|
||||
|
||||
j = 0
|
||||
for i in range(len(s)):
|
||||
c = s[i]
|
||||
|
||||
if j == date_l:
|
||||
return True
|
||||
elif c == date_f[j] \
|
||||
or (j in (2, 3) and c.isdigit()):
|
||||
j += 1
|
||||
continue
|
||||
|
||||
j = 0
|
||||
|
||||
return False
|
||||
|
||||
return filter(detect_date, lines)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
lines = []
|
||||
|
||||
fp = sys.argv[1]
|
||||
with open("../TaskA02/polish_wiki_excerpt.in", encoding="utf-8") as f:
|
||||
with open(fp, encoding="utf-8") as f: # following symlinks might not work on Windows
|
||||
lines = f.readlines()
|
||||
sol = solve(lines)
|
||||
with open("./polish_wiki_excerpt.out", 'w', encoding="utf-8") as f:
|
||||
|
Loading…
Reference in New Issue
Block a user