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

最初または最後から削除してPythonに再度挿入することでターゲットを作成するプログラム


2つの文字列SとTがあり、それらが互いに順列であるとします。 Sの最初または最後の文字を削除して、文字列の任意の場所に挿入する操作があるとします。次に、SをTに変換するために必要な操作の最小数を見つけます。

したがって、入力がs ="zyvxw" t ="vwxyz"の場合、出力は3になります。これらの操作は次のとおりです。「w」を削除し、「v」の後に挿入して「zyvwx」を削除します。「z」を削除します。 「x」の後に挿入して「yvwxz」を取得します。「y」を削除し、「x」の後に挿入して「vwxyz」を取得します。

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

  • ans:=sのサイズ、n:=sのサイズ

  • 0からn-1の範囲のiの場合、実行

    • k:=0

    • iからn-1の範囲のjの場合、実行

      • kからtのサイズまでの範囲のkについては、次のようにします

        • s[j]がt[k]と同じ場合、

          • ans:=ansとnの最小値-(j --i + 1)

          • ループから出てきます

      • k:=k + 1

    • ansを返す

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

class Solution:
   def solve(self, s, t):
      ans = n = len(s)

      for i in range(n):
         k = 0
         for j in range(i, n):
            for k in range(k, len(t)):
               if s[j] == t[k]:
                  ans = min(ans, n - (j - i + 1))
                  break
            k += 1

      return ans

ob = Solution()
s = "zyvxw"
t = "vwxyz"
print(ob.solve(s, t))

入力

"zyvxw", "vwxyz"

出力

5

  1. 文字列からn番目の文字を削除するためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 −文字列が与えられたので、与えられた文字列からi番目のインデックス付き文字を削除して表示する必要があります。 Pythonのどの文字列でも、インデックス付けは常に0から始まります。文字列「tutorialspoint」があるとすると、そのインデックス付けは次のように行われます- T u t o r i a l s p o i n t 0 1 2 3 4 5 6 7 8 9 10 11 12 13 次に、ステートメントを解決するためのPythonスクリプトを見てみましょう- 例 def remove

  2. 文字列からn番目の文字を削除するためのPythonプログラム?

    文字列は文字の配列を意味するため、開始アドレスは0です。そうすれば、すべての文字のインデックスを簡単に取得できます。そのインデックス番号を入力する必要があります。次に、その要素を削除します。したがって、文字列を2つのサブ文字列に分割します。また、2つの部分は、n番目のインデックス付き文字の前と、インデックス付き文字の後の2つの部分で、この2つの文字列をマージする必要があります。 例 Input: python n-th indexed: 3 Output: pyton 説明 アルゴリズム Step 1: Input a string. Step 2: input the index p