YottaGin

Freedom is a responsible choice.

[Python] ABC019 B

2020/1/4 2020/1/4 プログラミング

問題

B – 高橋くんと文字列圧縮

回答

s = input()

s_compressed = ''
cnt = 1

for i, ch in enumerate(s):
    if i == 0:
        ch_pre = ch
        continue
    
    if ch == s[i-1]:
        cnt += 1
    else:
        s_compressed += ch_pre + str(cnt)
        ch_pre = ch
        cnt = 1
        
s_compressed += ch_pre + str(cnt)

print(s_compressed)

Atcoder, Python GinO

関連記事

[Python] 決定性有限オートマトンを使った文字列検索

以下の続きです。 下の動画を参考にしています。 決定性有限オートマトンを使うと、文字列検索アルゴリズムは以下の流れで表現できます。 オートマトンを作る あるパターン\( P \)が与えられたとして、そのパターンに...

記事を読む

[Python] ABC007 D 桁DP

ABC007 Dを桁DPを使って解きます。 桁DP/Digit DP 「n以下の整数の処理」を考えるときに、 大きい桁から一桁ずつ数を見ていき、結果を代入するDP配列に、nより小さいことが確定しているかどうかのフラグを含めることで状態を管理する動的計画法で...

記事を読む

[Python] ABC020 A

問題 A - クイズ 回答 条件分岐 Q = int(input()) if Q == 1: print('ABC') else: print('chokudai') 三項演算子 Q = int(input()) a...

記事を読む

[ソート] 計数ソート

比較ソートと非比較ソート 比較ソートとは、コードに以下のような部分を含む、お互いの要素を比較することによって行われるソートです。 if array < array: swap(array, i, j) 比較ソートは比較によっ...

記事を読む

[Python] bitの1の数を数える

ある10進数の数について、その数を2進数にしたときに含まれる「1」の数を数える方法を考えます。 Pythonのbin()という組み込み関数を使うと、10進数を2進数に変換できます。 組み込み関数 bin(x) >>> bin(2) '0b10' >>>...

記事を読む


Public Domain YottaGin No Rights Reserved.