Portál AbcLinuxu, 30. dubna 2025 21:24
>>> with open("input_d1.txt", "r") as infile:
... line = infile.readline()
... print(line.count("(") - line.count(")"))
...
138
Takže více než polovina ;) S druhou částí jsem to prostě udělal takto. Jestli mi chceš ukázat svoje lepší řešení, tak nech keců a ukaž kód ;)
def fnfloor(path, pos, floor): ch = path[pos] if ch == "(": floor += 1 elif ch == ")": floor -= 1 if pos < len(path) - 1: return fnfloor(path, pos + 1, floor) else: return floor print(fnfloor(")())())", 0, 0))
DEFINE VARIABLE i AS INTEGER NO-UNDO.
DEFINE VARIABLE i_floor AS INTEGER INITIAL 0 LABEL "floor number" NO-UNDO.
DEFINE VARIABLE c_input AS CHARACTER LABEL "Insert instructions" NO-UNDO.
UPDATE c_input VIEW-AS EDITOR INNER-LINES 10 INNER-CHARS 50 WITH FRAME a.
HIDE FRAME a.
REPEAT i = 1 TO LENGTH(c_input):
i_floor = i_floor + (IF SUBSTRING(c_input, i, 1) = "(" THEN 1 ELSE -1).
END.
DISPLAY i_floor WITH SIDE-LABELS FRAME b.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.