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

Pythonで最初の文字列の文字から2番目の文字列を形成できるかどうかを確認します


2つの文字列sとtがあるとします。 sの文字を使ってtを形成できるかどうかを確認する必要があります。

したがって、入力がs ="owleh" t ="hello"のような場合、出力はTrueになります。

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

  • freq:=すべての文字とその頻度を含むマップ
  • 範囲0からt-1のサイズのiの場合、do
    • freq [t [i]]が0の場合、
      • Falseを返す
    • freq [t [i]]:=freq [t [i]]-1
  • Trueを返す

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

サンプルコード

from collections import defaultdict
 
def solve(s, t):
   freq = defaultdict(int)
 
   for i in range(len(s)):
      freq[s[i]] += 1
     
   for i in range(len(t)):
      if freq[t[i]] == 0:
         return False
      freq[t[i]] -= 1
   return True

s = "owhtlleh"
t = "hello"
print(solve(s, t))
>

入力

"apuuppa"

出力

True

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

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

  2. Pythonのサフィックスのリストから文字列が1つで終わっているかどうかを確認するにはどうすればよいですか?

    Pythonには、Stringクラスにendswith(tuple)メソッドがあります。このメソッドは、検索する文字列のタプルを受け入れ、文字列オブジェクトで呼び出されます。このメソッドは次の方法で呼び出すことができます: string = 'core java' print(string.endswith(('txt', 'xml', 'java', 'orld'))) 出力 True 文字列が指定されたサフィックスのリストで終わっているかどうかを確認する別の方法があります。これを行うには、reモジュール(正