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

Pythonで1つの文字列の文字を交換して別の文字列を形成できるかどうかを確認します


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

したがって、入力がs ="worldlloeh" t ="helloworld"の場合、「worldlloeh」から文字を交換して「helloworld」を作成できるため、出力はTrueになります。

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

  • s_len:=sのサイズ、t_len:=tのサイズ
  • s_lenがt_lenと同じでない場合、
    • Falseを返す
  • freq:=すべての文字とその頻度をsに格納するためのマップ
  • 0からt_lenの範囲のiの場合、実行
    • freq [t [i]]:=freq [t [i]]-1
    • freq [t [i]] <0の場合、
      • Falseを返す
  • Trueを返す

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

from collections import defaultdict
def solve(s, t):
   s_len = len(s)
   t_len = len(t)
   if (s_len != t_len):
      return False
   freq = defaultdict(int)
   for char in s :
      freq[char] += 1
   for i in range(t_len) :
      freq[t[i]] -= 1
      if freq[t[i]] < 0:
         return False
   return True
s = "worldlloeh"
t = "helloworld"
print(solve(s, t))

入力

"worldlloeh", "helloworld"

出力

True

  1. 文字列にすべての一意の文字が含まれているかどうかを確認するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 sring入力が与えられた場合、文字列にすべての一意の文字が含まれているかどうかを確認する必要があります。 アプローチ ブール値の配列を作成します。ここで、インデックスiの変数フラグは、アルファベットの文字iが文字列に含まれているかどうかを示します。 この文字に2回目に遭遇したとき、文字列文字は一意ではなくなったため、すぐにfalseを返すことができます。 文字列の長さがアルファベットに表示される一意の文字数の値を超える場合も、falseを返すことができます。 文

  2. 文字列をPythonでfloatに変換できるかどうかを確認するにはどうすればよいですか?

    文字列を解析してfloatするには、次を使用できます。 try:     print float('112.15') except ValueError:     print 'Cannot parse' これにより、出力が得られます: 112.15 文字列を解析できない場合は、値エラーがスローされます。 指定した文字列のブール値を返すラッパーメソッドを作成できます。たとえば、 def isfloat(value):   try:     float(value)   &nbs