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

特定の文字列のすべての回文サブ文字列を検索します-Pythonで2を設定します


文字列があるとします。その文字列からすべての回文サブ文字列を見つける必要があります。ここで、aaとaaは、1つではなく、2つのサブ文字列と見なされます。

したがって、入力がredividerのようなものである場合、出力は['r'、'e'、'd'、'i'、'v'、'ivi'、'divid'、'edivide'、'redivider'になります。 、'i'、'd'、'e'、'r']

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

  • v:=新しいリスト
  • pos:=0.0
  • pos
  • rad:=pos-(整数としてのpos)
  • while(pos + rad) =0 and(s [integer of(pos --rad)] is same as s [integer of(pos + rad)])、do
    • vの最後にs[(pos --rad)のインデックス整数から(pos + rad + 1)の整数]を挿入します
    • rad:=rad + 1
  • pos:=pos + 0.5
  • return v
  • サンプルコード

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

    def get_all_pal_sub(s):
       v = []
       pos = 0.0
       while pos < len(s):
          rad = pos - int(pos)
          while ((pos + rad) < len(s) and (pos - rad) >= 0 and (s[int(pos - rad)] == s[int(pos + rad)])):
             v.append(s[int(pos - rad): int(pos + rad + 1)])
             rad += 1
          pos += 0.5
       return v
    v = get_all_pal_sub("redivider")
    print(len(v))
    print(v)

    入力

    "redivider"

    出力

    13 ['r', 'e', 'd', 'i', 'v', 'ivi', 'divid', 'edivide', 'redivider', 'i', 'd', 'e', 'r']

    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('