書かれたプログラミング2020221

 

トピック:

文字列、デジタル文字+への文字の書き換え現れるつ以上の連続した文字。たとえば 'aaaabbcd' については、 '4abbcd' を書き換えます。

文字列が書き換えルールの入力と一致するかどうかを決定し、解凍関数を記述してください、会った場合、元の文字列を印刷します。

 

注:使用して、可変伝送パラメータを残しました。各文字は、元裁判官かどうかの数です。

s='10abb4c51d'

def unzip(s):
    left=0
    output=[]
    for i in range(len(s)):
        c=ord(s[i])
        if c>=97 and left==0:#是字母,且左边不是数字
            output.append(s[i])
        if c>=97 and left>2:
            output.append(s[i]*left)
        #print(s[i]*left,end='')#是字母,左边数字>2
            left=0
        if c>=97 and (left ==1 or left==2): #是字母,左边数字是1或2
            return False
        if c<97: #是数字
            left=left*10+int(s[i]) # 是数字
        if i==len(s)-1 and c<97:
            return False
    return output

result=unzip(s)
if not result:
    print('!error')
else:
    for ele in result:
        print(ele,end='')

 

公開された163元の記事 ウォン称賛90 ビュー6259

おすすめ

転載: blog.csdn.net/weixin_45405128/article/details/104426836