Pythonで文字列圧縮を実行するプログラム
文字列sがあるとします。この文字列をランレングスエンコーディング形式に圧縮する必要があります。したがって、文字が「bbbb」のようにk回連続して繰り返される場合、文字「b」は4回連続して繰り返されるため、エンコードされた形式は「b4」になります。単一の文字の場合、カウントを追加しません。
したがって、入力がs ="abbbaaaaaaccdaaab"の場合、出力はab3a6c2da3b
になります。これを解決するには、次の手順に従います-
- res:=空白の文字列
- cnt:=1
- 範囲1からs-1のサイズのiの場合、実行
- s[i-1]がs[i]と同じ場合、
- cnt:=cnt + 1
- それ以外の場合、
- res:=res concatenate s [i-1]
- cnt> 1の場合、
- res:=res concatenate cnt
- cnt:=1
- s[i-1]がs[i]と同じ場合、
- res:=res+sの最後の文字
- cnt> 1の場合、
- res:=res concatenate cnt
- return res
例
理解を深めるために、次の実装を見てみましょう-
def solve(s): res = "" cnt = 1 for i in range(1, len(s)): if s[i - 1] == s[i]: cnt += 1 else: res = res + s[i - 1] if cnt > 1: res += str(cnt) cnt = 1 res = res + s[-1] if cnt > 1: res += str(cnt) return res s = "abbbaaaaaaccdaaab" print(solve(s))
入力
"abbbaaaaaaccdaaab"
出力
ab3a6c2da3b
-
16進文字列を10進数に変換するPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 − 16進文字列が与えられたので、それを10進数に変換する必要があります。 問題を解決するための2つのアプローチがあります- ブルートフォースアプローチ 組み込みモジュールの使用 ブルートフォース方式 ここでは、明示的な型キャスト関数、つまり整数を利用します。この関数は、2つの引数、つまり16進数と同等の引数とベース(16)を取ります。この関数は、16進文字列を整数型の同等の10進数に変換するために使用されます。これは、さらに文字列形式に型キャストして戻すことができます。 例 #input strin
-
文字列内のミラー文字を検索するPythonプログラム
ユーザー入力文字列とその位置からの位置を指定すると、文字をアルファベット順に文字列の長さまでミラーリングする必要があります。この操作では、「a」を「z」に、「b」を「y」に、「c」を「x」に、「d」を「w」に変更します。これは、最初の文字が最後になることを意味します。オン。 Inpu t: p = 3 Input string = python Output : pygslm アルゴリズム Step 1: Input the string and position from we need to mirror the characters. Step 2: Creating a s