【每日一题0618】 python 字符串格式化(不使用zfill方法)

请输出1-1000的数字如下格式:
0001
0002
0003
...
1000

题解1:利用%格式化占位符

def parse_1(n:int):
    return ('%04d' % n)
    
assert '0008' == parse_1(8)
assert '0088' == parse_1(88)
assert '0888' == parse_1(888)
assert '1000' == parse_1(1000)

题解2:倒着切片

def parse_2(n:int):
    return ('0000'+str(n))[-4:]

assert '0008' == parse_2(8)
assert '0088' == parse_2(88)
assert '0888' == parse_3(888)
assert '1000' == parse_3(1000)

题解3:利用双端队列,后进前出。

from queue import deque

def parse_3(n:int):
    dq = deque(['0', '0', '0', '0'])
    
    for i in list(str(n)):
        dq.append(i)
        dq.popleft()
    return ''.join(list(dq))

assert '0008' == parse_3(8)
assert '0088' == parse_3(88)
assert '0888' == parse_3(888)
assert '1000' == parse_3(1000)

:partying_face: :partying_face: :partying_face: :partying_face: :partying_face: :partying_face:

关闭