Найти - Пользователи
Полная версия: Не могу понять как сделать это задачу?
Начало » Центр помощи » Не могу понять как сделать это задачу?
1
Xryst
Извините, ну я просто не могу понять как сделать это задачу?
Входные данные: строка, которая состоит из открывающих и закрывающих круглых дужек, - аргумент командной строки. Для передачи в качестве строки последовательность берется в двойные кавычки.
Результат работы: строка “YES”, если входная строка содержит правильную дужкову последовательность; или строка “NO”, если последовательность является неправильной. Дужкова последовательность считается правильной, если все дужки можно разбить попарно “видкриваюча”-“закриваюча”, при чем в каждой паре закрывающая дужка следует после открывающей.
Например
Входные данные: “)(” Результат: NO Входные данные: “(()(()” Результат: NO Входные данные: “(()(()()))” Результат: YES Входные данные: “())()(()())(()” Результат: NO
P.S. Если можно код, с обьяснениями, спасибо.
terabayt
import sys
a = sys.argv[1]
while a.find('()') + 1:
    a = a.replace('()', '')
print 'NO' if a else 'YES'
Xryst
Большое спасибо, читаю про
a.find
та
a.replace
py.user.next
>>> def f(seq, se='()'):
...     st = []
...     s, e = se
...     for i in seq:
...         if i == s:
...             st.append(i)
...         elif i == e:
...             if st:
...                 st.pop()
...             else:
...                 return False
...     return st == []
... 
>>> f(')(')
False
>>> f('(()(()')
False
>>> f('(()(()()))')
True
>>> f('())()(()())(()')
False
>>>
>>> f('a(b(c)d(e(f)g(h)i)j)k')
True
>>> f('a(b)c)d(e)f(g(h)i(j)k)l(m(n)o')
False
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB