ABC019-B - 高橋くんと文字列圧縮 を解く
ABC019-B - 高橋くんと文字列圧縮
与えられた文字列が
"aabbbaad" なら "a2b3a2d1" に、
"aabbbbbbbbbbbbxyza" なら "a2b12x1y1z1a1" のように
変換する問題
前から文字を数えていって
違う文字になったらその都度変換・接続していけばいい感じかな
以下は処理のイメージ
['',0] aabbbaad ''
→ ['',0] aabbbaad ''
→ ['a',1] aabbbaad ''
→ ['a',2] aabbbaad ''
→ ['a',2] aabbbaad ''
→ ['b',1] aabbbaad 'a2'
…
(中略)
…
→ ['d',1] aabbbaad 'a2b3a2d1'
提出したコード
# 入力 s=input() # リスト l=['',0] # 出力文字列 a='' for x in s: if l[0]=='': l[0]=x l[1]=1 elif l[0]!=x: a+=l[0]+str(l[1]) l[0]=x l[1]=1 else: l[1]+=1 # 最後の文字と文字数も加算する a+=l[0]+str(l[1]) # 出力 print(a)