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

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


文字列sがあるとします。ランレングスエンコーディング技術を使用してこれをエンコードする必要があります。ご存知のように、ランレングスエンコーディングは、文字列をエンコードするための高速でシンプルな方法です。アイデアは次のとおりです-単一のカウントと文字として繰り返される連続する要素(文字)。

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

になります。

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

  • res:=空白の文字列
  • tmp:=sの最初の文字
  • count:=1
  • 1からsのサイズの範囲のiについては、
    • s [i]がtmpと同じでない場合、
      • res:=res concatenate count concatenate tmp
      • tmp:=s [i]
      • count:=1
    • それ以外の場合、
      • count:=count + 1
  • return res concatenate count concatenate tmp

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

class Solution:
   def solve(self, s):
      res = ""
      tmp = s[0]
      count = 1
      for i in range(1,len(s)):
         if s[i] != tmp:
            res += str(count) + tmp
            tmp = s[i]
            count = 1
         else:
            count += 1
      return res + str(count) + tmp
ob = Solution() print(ob.solve("BBBBAAADDCBB"))
>

入力

"BBBBAAADDCBB"

出力

4B3A2D1C2B

  1. 配列内の反転をカウントするPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。必要な反転をカウントして表示する必要があります。 反転カウントは、配列をソートするために必要なステップ数をカウントすることによって取得されます。 次に、以下の実装のソリューションを見てみましょう- 例 # count def InvCount(arr, n):    inv_count = 0    for i in range(n):       for j in range(i + 1, n):  

  2. 文字列内の単語の出現をカウントするPythonプログラムを作成しますか?

    ここで、ユーザーは文字列を指定し、ユーザーは出現回数をカウントするための単語も指定しました。私たちの仕事は、発生回数を数えて印刷することです。 例 programming Output:: 2 アルゴリズム wordoccurences(n,p) /* n is input string and p is the word to count occurrence */ Step 1: split the string by space Step 2: we use one counter variable c and it’s initialized by 0 and if word is