示例#1
0
def stack(s):

    brackets = SList()

    while s :

        p = s.pop(0)

        if brackets.is_empty():

            if p == "}" or p == ")":

                print("Wrong brackets.")

                return

            elif p == "{" or p == "(":

                brackets.push(p)
                print(p)

        else:

            if p == '}':

                pop = brackets.pop()
                print(p)

                if pop != '{':

                    print("Wrong brackets.")

                    return


            elif p == ')':

                pop = brackets.pop()
                print(p)

                if pop != '(':

                    print("Wrong brackets.")

                    return

            elif p == "{" or p == "(":

                brackets.push(p)
                print(p)


    if brackets.is_empty():

        print("Good brackets.")

        return

    else:

        print("Wrong brackets.")

        return
示例#2
0
class TestSList(unittest.TestCase):
    def setUp(self):
        self.list = SList()

    def test_isEmpty(self):
        self.assertTrue(self.list.isEmpty())
        self.list.append('new')
        self.assertFalse(self.list.isEmpty())

    def test_size(self):
        self.assertEqual(0, self.list.size())
        self.list.append('new1')
        self.assertEqual(1, self.list.size())
        self.list.append('new2')
        self.list.append('new3')
        self.assertEqual(3, self.list.size())

    def test_index(self):
        self.assertIsNone(self.list.index('not exist'))
        self.list.append('1')
        self.list.append('2')
        self.list.append('3')
        self.assertEqual(0, self.list.index('1'))
        self.assertEqual(1, self.list.index('2'))
        self.assertEqual(2, self.list.index('3'))
        self.list.pop()
        self.assertIsNone(self.list.index('3'))

    def test_search(self):
        self.assertFalse(self.list.search('1'))
        self.list.append('1')
        self.assertTrue(self.list.search('1'))
        self.assertFalse(self.list.search('2'))

    def test_insertAppendAdd(self):
        self.list.append('1')
        self.list.append('2')
        self.list.add('3')
        self.list.add('4')
        self.list.insert(2, '5')
        self.list.insert(0, '6')
        self.list.insert(7, '7')
        # [6,4,3,5,1,2,7]
        self.assertEqual('6', self.list.get(0))
        self.assertEqual('4', self.list.get(1))
        self.assertEqual('3', self.list.get(2))
        self.assertEqual('5', self.list.get(3))
        self.assertEqual('1', self.list.get(4))
        self.assertEqual('2', self.list.get(5))
        self.assertEqual('7', self.list.get(6))

    def test_popRemove(self):
        self.list.append('1')
        self.list.append('2')
        self.list.add('3')
        self.list.add('4')
        self.list.insert(2, '5')
        self.list.insert(0, '6')
        self.list.insert(7, '7')
        # [6,4,3,5,1,2,7]
        self.assertEqual('7', self.list.pop())
        self.assertEqual('6', self.list.pop(0))
        self.assertEqual('5', self.list.remove('5'))
        # [4,3,1,2]
        self.list.append('8')