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

文字列をk個の異なるパーティションに分割するPythonプログラム


文字列sと値kがあるとします。 kの値は、sの長さの係数であり、長さがnであるとします。 sをサイズkのt_iと呼ばれるn/k個の異なる部分文字列に分割できます。次に、これらのt_iを使用して、u_iを次のようにします

  • u_iに存在する文字は、t_iの文字のサブシーケンスです

  • u_iの各文字の頻度が1になるように、これらの文字列から繰り返し文字が削除されます

これらのu_i文字列を見つける必要があります

したがって、入力がs ="MMPQMMMRM" k =3の場合、sのサイズは9、kは3であるため、出力は["MP"、 "QM"、 "MR"]になります。したがって、9 / 3 =3。文字列はMMP、QMM、およびMRMですが、重複する文字はサポートされていないため、MP、QM、およびMRになります。

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

  • i:=0
  • ret:=新しいリスト
  • mp:=新しいマップ
  • to_print:=空白の文字列
  • i
  • i mod kが0と同じで、iが0でない場合、
    • retの最後にto_printを挿入
    • mpをクリアしてto_printをクリア
  • s [i]がmpに存在しない場合、
    • mp [s [i]]:=0
    • to_print:=to_print + s [i]
  • i:=i + 1
  • retの最後にto_printを挿入
  • return ret
  • 理解を深めるために、次の実装を見てみましょう

    def solve(s, k):
       i = 0
       ret = []
       mp, to_print = {}, ""
       while i < len(s):
          if i % k == 0 and i != 0:
             ret.append(to_print)
             mp, to_print = {}, ""
          if s[i] not in mp.keys():
             mp[s[i]] = 0
             to_print += s[i]
          i += 1
       ret.append(to_print)
       return ret
    
    s = "MMPQMMMRM"
    k = 3
    print(solve(s, k))

    入力

    "MMPQMMMRM", 3
    

    出力

    ['MP', 'QM', 'MR']

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

      この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 リストを指定すると、文字列型に変換する必要があります。 ここでは、上記の問題ステートメントを解決するための4つの異なるアプローチについて説明します- アプローチ1:空の文字列で連結を使用する。 例 def listToString(s):    # empty string    str1 = ""    # traversal    for ele in s:    

    2. 文字列を分割して結合するPythonプログラム?

      Pythonプログラムは、文字列の結合と文字列の分割のための組み込み関数を提供します。 split Str.split() join Str1.join(str2) アルゴリズム Step 1: Input a string. Step 2: here we use split method for splitting and for joining use join function. Step 3: display output. サンプルコード #split of string str1=input(Enter first String with space :: ) prin