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

Pythonで他の2つの文字列を使用して最終的な文字列を形成できるかどうかを確認するプログラム


2つの文字列s、t、および別の文字列rがあるとします。文字をsとtの順にマージして、rを取得する方法があるかどうかを確認する必要があります。

したがって、入力がs ="xyz" t ="mno" r ="xymnoz"の場合、xyzとmnoをインターリーブすることでxymnozを形成できるため、出力はTrueになります。

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

  • 関数solve()を定義します。これにはs、t、rが必要です

  • s、t、rが空の場合、

    • Trueを返す

      • rが空の場合、

        • Falseを返す

  • sが空の場合、

    • tがrと同じ場合はtrueを返し、それ以外の場合はfalseを返します

  • tがゼロ以外の場合、

    • returnsはrと同じです

  • s[0]がr[0]と同じ場合、

    • Solve(s [インデックス1から終了]、t、r [インデックス1から終了])がtrueの場合、

      • Trueを返す

  • t[0]がr[0]と同じ場合、

    • Solve(s、t [インデックス1から終了]、r [インデックス1から終了])がtrueの場合、

      • Trueを返す

  • Falseを返す

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

class Solution:
   def solve(self, s, t, r):
      if not s and not t and not r:
         return True
      if not r:
         return False
      if not s:
         return t == r
      if not t:
         return s == r
      if s[0] == r[0]:
         if self.solve(s[1:], t, r[1:]):
            return True
         if t[0] == r[0]:
            if self.solve(s, t[1:], r[1:]):
               return True
         return False
ob = Solution()
s = "xyz"
t = "mno"
r = "xymnoz"
print(ob.solve(s, t, r))

入力

"xyz", "mno", "xymnoz"

出力

True

  1. Pythonでノードを交換することで2つのツリーを形成できるかどうかを確認するプログラム

    2つのツリーがあるとすると、ノードの左右のサブツリーを何度でも交換して、最初のツリーを2番目のツリーに変換できるかどうかを確認する必要があります。 したがって、入力が次のような場合 その場合、出力はTrueになります これを解決するには、次の手順に従います- que1:=最初はroot0のキュー que2:=最初はroot1のキュー que1とque2は空ではありませんが、実行してください temp1:=新しいリスト、temp2:=新しいリスト values1:=新しいリスト、values2:=新しいリスト que1とque2に含まれる要素の数が

  2. 文字列が回文であるかどうかをチェックするPythonプログラム

    文字列が与えられた場合、私たちのタスクは、この文字列が回文であるかどうかを確認することです。 アルゴリズム Step1: Enter string as an input. Step2: Using string slicing we reverse the string and compare it back to the original string. Step3: Then display the result. サンプルコード my_string=input("Enter string:") if(my_string==my_string[::-1]): &nbs