# zad 2
class Stos:
def __init__(self):
self.s = []
def push(self, x):
# assert self.size() < 20, "Too many elements"
self.s.append(x)
def pop(self):
assert not self.is_empty(), "Stack is empty"
return self.s.pop(-1)
def top(self):
assert not self.is_empty(), "Stack is empty"
return self.s[-1]
def size(self):
return len(self.s)
def is_empty(self):
return not bool(len(self.s))
def ciag_nawiasowy_poprawny(s):
"""Zwraca 'TAK' jesli podany ciag nawiasowy (string) jest poprawny,
w przeciwnym wypadku 'NIE'."""
nawiasy = {
"{": "}",
"[": "]",
"(": ")",
"<": ">",
}
ciag = Stos()
for c in s:
if c in nawiasy:
ciag.push(c)
elif nawiasy[ciag.top()] == c:
ciag.pop()
else:
return "NIE"
if ciag.is_empty():
return "TAK"
return "NIE"
print(ciag_nawiasowy_poprawny("{{[()()]}}")) # TAK
print(ciag_nawiasowy_poprawny("([)()]")) # NIE
print(ciag_nawiasowy_poprawny("([(){}])[]")) # TAK
print(ciag_nawiasowy_poprawny("([(){}]>")) # NIE
print(ciag_nawiasowy_poprawny("([(){}>)")) # NIE
print(ciag_nawiasowy_poprawny("([(]))")) # NIE
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}