Example #1
0
def parentheses(str):
    s = stack.Stack()
    item = {'{': '}', '(': ')'}
    for i in range(len(str) - 1):
        if str[i] == '{' or str[i] == '(':
            s.push(str[i])
        if s.peek() is None:
            return False
        if item[s.peek()] == str[i + 1]:
            s.pop()
    return s.size == 0
Example #2
0
def is_palindrome(str):
    s = stack.Stack()
    half = int(len(str) / 2)
    for i in range(half):
        s.push(str[i])

    if len(str) % 2 == 1:
        half += 1

    while s.size != 0:
        if s.pop() == str[half]:
            half += 1
        else:
            return False
    return True
Example #3
0
def reverse_stack(item):
    tmp = copy.deepcopy(item)
    reverse = stack.Stack()
    for i in range(tmp.size):
        reverse.push(tmp.pop())
    return reverse