Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでランレングス形式の文字列を通常の形式にデコードするプログラム


文字列sがあるとします。 sはランレングスでエンコードされた文字列であり、デコードされたバージョンを見つける必要があります。ご存知のように、ランレングスエンコーディングは、文字列をエンコードするための高速でシンプルな方法です。アイデアは次のとおりです-単一のカウントと文字として繰り返される連続する要素(文字)。たとえば、文字列が「BBBBAAADDCBB」のような場合、「4B3A2D1C2B」としてエンコードされます。

したがって、入力がs ="4B3A2D1C2B"の場合、出力は "BBBBAAADDCBB"

になります。

これを解決するには、次の手順に従います-

  • 出力:=空白の文字列
  • num:=空白の文字列
  • sの各文字iについて、
    • iがアルファベットの場合、
      • output:=output + i *(num as number)
      • num:=空白の文字列
    • それ以外の場合、
      • num:=num + i
  • 出力を返す

理解を深めるために、次の実装を見てみましょう-

class Solution:
   def solve(self, s):
      output = ""
      num=""
      for i in s:
         if i.isalpha():
            output+=i*int(num)
            num=""
         else:
            num+=i
      return output
ob = Solution() print(ob.solve("4B3A2D1C2B"))
を返します

入力

"4B3A2D1C2B"

出力

BBBBAAADDCBB

  1. 行列をZ形式で印刷するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 −次数n * nの正方行列が与えられた場合、行列の要素をZ形式で表示する必要があります。 Zフォームは、次の手順でマトリックスをトラバースしています- 最初の行をトラバースします 次に、2番目の主対角線を横断します 最後に、最後の行をトラバースします。 ここでは、code.demostrateのフローを示すために暗黙的に取得された入力マトリックスを取得します。 例 arr = [[1, 2, 6, 9],    [1, 2, 3, 1],   &nb

  2. 文字のリストを文字列に変換するPythonプログラム

    Pythonはこの種の変換をたくさん必要とします。たとえば、このような変換はシリアル化の目的で役立ちます。このような変換の例は、-です。 ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'] to "hello world" Pythonには、このような変換に使用できる結合メソッドがあります。オブジェクトを連結するために使用される区切り文字列