language: Python 3 (python-3.2.3)
date: 195 days 10 hours ago
link:
visibility: private
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from __future__ import print_function
 
cp = [2, 3, 4, '<', 5, '>', 6]  # note: list is inefficient for deletions in the middle 
i = 0
dp = '>'
flag = False
while 0 <= i < len(cp):
    c = cp[i]
    if c == '<' or c == '>':
        dp = c
        flag = True
    else:  # digit
        print(c, end='')
        if c == 0:
            del cp[i]
            i -= 1
        else:
            cp[i] -= 1
 
    if dp == '>':
        i += 1
    else:
        assert dp == '<'
        i -= 1
 
    if  not (0 <= i  < len(cp)): 
        break
 
    c = cp[i]
    if flag and (c == '>' or c == '<'):
        del cp[i - 1]
        i -= 1