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

Pythonで特定の文字列の文字のすべての可能な組み合わせのリストを見つけるプログラム


文字列sがあるとします。 sの文字の可能なすべての組み合わせを見つける必要があります。同じ文字セットを持つ2つの文字列がある場合は、辞書式順序で最も小さい文字列を表示します。そして、1つの制約は、sの各文字が一意であるということです。

したがって、入力がs ="pqr"のような場合、出力は['r'、'qr'、'q'、'pr'、'pqr'、'pq'、'p']>

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

  • st_arr:=新しいリスト
  • s-1から0の範囲サイズのiの場合、1ずつ減らします。
    • 範囲0からst_arr-1のサイズのjの場合、do
      • st_arrの最後に(s [i] concatenate st_arr [j])を挿入します
    • st_arrの最後にs[i]を挿入
  • return st_arr

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

def solve(s):
   st_arr = []

   for i in range(len(s)-1,-1,-1):
      for j in range(len(st_arr)):
         st_arr.append(s[i]+st_arr[j])
      st_arr.append(s[i])
   return st_arr

s = "pqr"
print(solve(s))

入力

"pqr"

出力

['r', 'qr', 'q', 'pr', 'pqr', 'pq', 'p']

  1. 指定された文字列のすべての順列を出力するPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −文字列の可能なすべての順列を表示するために必要な文字列が与えられます。 次に、以下の実装のソリューションを見てみましょう- 例 # conversion def toString(List):    return ''.join(List) # permutations def permute(a, l, r):    if l == r:       print (toString(a))    e

  2. Pythonで特定の文字列のすべての可能な順列を見つける方法は?

    特定の文字列のすべての可能な順列を見つけるには、permutations(iterable [、r])と呼ばれる便利なメソッドを持つitertoolsモジュールを使用できます。このメソッドは、反復可能な要素の連続するrの長さの順列をタプルとして返します。 すべての順列を文字列として取得するには、関数呼び出しを繰り返し処理してタプルを結合する必要があります。例:  >>>from itertools import permutations >>>print [''.join(p) for p in permutations('