class QueueFromStack:
    def __init__(self):
        self.in_storage = Stack()
        self.out_storage = Stack()

    def size(self):
        return self.in_storage.size() + self.out_storage.size()

    def enqueue(self, value):
        self.in_storage.push(value)

    def dequeue(self):
        if self.out_storage.size() == 0:
            while self.in_storage.size() != 0:
                self.out_storage.push(self.in_storage.pop())
        return self.out_storage.pop()
コード例 #2
0
def parentheses_checker(string):
    opening_stack = Stack()
    closing_stack = Stack()
    opening_curly_braces = Stack()
    closing_curly_braces = Stack()
    for char in string:
        if re.match(r'\(', char):
            opening_stack.push(char)
        elif re.match(r'\)', char):
            closing_stack.push(char)
        elif re.match(r'\{', char):
            opening_curly_braces.push(char)
        elif re.match(r'\}', char):
            closing_curly_braces.push(char)
    if opening_stack.size() == closing_stack.size(
    ) and opening_curly_braces.size() == closing_curly_braces.size():
        return True
    return False
コード例 #3
0
def reverseString (my_string):
    reverse_str=""
    x=Stack()
    """ we are using variable x as a stack variable as object of the
    previously defined stack class"""
    for s in my_string :
        x.push(s)
    for item in range(x.size()):
        reverse_str=reverse_str+x.pop()
        
    return reverse_str
コード例 #4
0
def is_balanced(string):
    """Check that the paranthesis in a strigng are balanced."""
    s = Stack()
    match_dict = {')': '(', ']': '[', '}': '{'}

    for char in string:
        if char in match_dict.values():
            s.push(char)

        elif char in match_dict.keys():
            if s.size() == 0:
                return print('The paranthesis are not balanced')

            elif s.size() != 0 and char != s.peek():
                s.pop()

            else:
                pass

    if s.is_empty():
        return print('The paranthesis are balanced')
コード例 #5
0
class Deck:
    "A bilota deck of cards."

    def __init__(self):
        self.cards = Stack()
        for s in suits:
            for r in ranks:
                self.cards.push(Card(r, s))

    def shuffle(self):
        """Shuffles the Deck only if it has max size."""
        if self.cards.size() == 32:
            shuffle(self.cards.items)

        raise RuntimeError('Only a full Deck can be shuffled.')

    def get_card(self):
        """Gets a card from the Deck."""
        return self.cards.pop()
コード例 #6
0
 def test_size_returns_correct_number_for_many_item_stack(self):
     test_obj = Stack()
     test_data0 = 'data0'
     test_data1 = 'data1'
     test_data2 = 'data2'
     test_data3 = 'data3'
     test_data4 = 'data4'
     test_data5 = 'data5'
     test_data6 = 'data6'
     test_data7 = 'data7'
     test_data8 = 'data8'
     test_data9 = 'data9'
     test_obj.push(test_data0)
     test_obj.push(test_data1)
     test_obj.push(test_data2)
     test_obj.push(test_data3)
     test_obj.push(test_data4)
     test_obj.push(test_data5)
     test_obj.push(test_data6)
     test_obj.push(test_data7)
     test_obj.push(test_data8)
     test_obj.push(test_data9)
     self.assertEqual(10, test_obj.size())
コード例 #7
0
 def test_size_returns_1_for_1_item_stack(self):
     test_obj = Stack()
     test_data = 'data1'
     test_obj.push(test_data)
     self.assertEqual(1, test_obj.size())
     self.assertEqual(False, test_obj.is_empty())
コード例 #8
0
 def test_size_handles_empty_stack(self):
     test_obj = Stack()
     self.assertEqual(0, test_obj.size())
     self.assertEqual(True, test_obj.is_empty())