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

チェックするプログラムは、Pythonの2つの文字列間で辞書式に大きいまたはない順列がありますか


同じサイズの2つの文字列sとtがあるとすると、次のように、sの順列(たとえばs1)とtの順列(たとえばt1)があるかどうかを確認する必要があります。 0≤i

したがって、入力がs ="vyx" t ="wzx"の場合、s1="vxy"およびt1="wxz"となる可能性があるため、出力はTrueになります。

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

  • sとtが空の場合、
    • Trueを返す
  • s:=文字列sを並べ替える
  • t:=文字列tを並べ替える
  • 関数util()を定義します。これにはs1、s2が必要です
  • 0からs1のサイズの範囲のiについては、
    • s1 [i]> t1 [i]の場合、
      • Falseを返す
  • Trueを返す
  • メインの方法から次のようにします-
  • util(s、t)がtrueの場合、
    • Trueを返す
  • sとtを入れ替える
  • return util(s、t)

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

class Solution:
   def solve(self, s, t):
      if not len(s) or not len(t):
         return True
         s = sorted(s)
         t = sorted(t)
   def util(s1, t1):
      for i in range(len(s1)):
         if s1[i] > t1[i]:
            return False
         return True
         if util(s, t):
            return True
      s, t = t, s
      return util(s, t)
ob = Solution()
s = "vyx"
t = "wzx"
print(ob.solve(s, t))

入力

"vyx", "wzx"

出力

True

  1. C2つの文字列が同じかどうかをチェックするプログラム

    2つの文字列str1とstr2が与えられた場合、2つの文字列が同じであるかどうかを確認する必要があります。 「こんにちは」と「こんにちは」の2つの針が与えられているように、それらは同一で同じです。 同一の文字列は、「Hello」と「hello」のように同じように見えますが、同じではありません。同じ文字列は、「World」と「World」のようにまったく同じです。 例 Input: str1[] = {“Hello”}, str2[] = {“Hello”} Output: Yes 2 strings are same Input: str1[]

  2. グラフに共通の到達可能なノードがあるかどうかをPythonでチェックするプログラム

    有向グラフのエッジリストがあり、ノードがn個あり、ノード名が0〜n-1であるとします。2つの整数値aとbもあります。 cからaに、またcからbに移動できるようなノードcがあるかどうかを確認する必要があります。 したがって、入力が次のような場合 また、a =2、b =3の場合、出力はTrueになります。これは、ここではc =0であるため、0から2、さらには0から3へのルートがあります。 これを解決するには、次の手順に従います- 関数DFS()を定義します。これは、グラフ、ノード、訪問済みを取得します ノードにアクセスしていない場合は、 ノードを訪問済みとしてマーク グラフ[ノード]