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

文字列はPythonで別の文字列に変換されます


2つの文字列str1とstr2があるとします。そして、それらの長さは同じです。ゼロ以上の変換を行うことで、str1をstr2に変換できるかどうかを確認する必要があります。

1回の変換で、str1内の1つの文字のすべての出現を他の小文字の英語文字に変換できます。 str1をstr2に変換できるかどうかを確認する必要があります。

したがって、入力がstr1 ="aabcc"、str2 ="ccdee"の場合、出力はtrueになります。Convert'c' to'e' then'b' to'd' then'a' to'c '。ここでは、変換の順序が重要であることに注意する必要があります。

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

  • 関数compress()を定義します。これには時間がかかります

  • n:=sのサイズ

  • a:=新しいリスト

  • カウント:=1

  • 1からnの範囲のiの場合、実行します

    • s[i]がs[i-1]と同じでない場合、

      • の最後にカウントを挿入します
      • count:=1

    • それ以外の場合

      • count:=count + 1

  • の最後にカウントを挿入します
  • を返す
  • 関数canConvert()を定義します。これにはstr1、str2が必要です

  • a:=compress(str1)

  • b:=compress(str2)

  • n:=aのサイズ、m:=bのサイズ

  • d:=新しいマップ

  • n:=最小n、m

  • i:=0

  • i

    • a [i]> b [i]がゼロ以外の場合、

      • Falseを返す

    • i:=i + 1

  • str2の各iについて、実行します

    • dにないiがゼロ以外の場合、

      • d [i]:=1

  • 26の場合はTrueを返します-dのサイズがゼロ以外の場合、またはstr1がstr2と同じ場合、それ以外の場合はFalse

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

class Solution(object):
   def compress(self,s):
      n = len(s)
      a = []
      count = 1
      for i in range(1,n):
         if s[i]!=s[i-1]:
            a.append(count)
            count=1
         else:
            count+=1
      a.append(count)
      return a
   def canConvert(self, str1, str2):
      a = self.compress(str1)
      b = self.compress(str2)
      n = len(a)
      m = len(b)
      d={}
      n = min(n,m)
      i = 0
      while i<n:
         if a[i]>b[i]:
            return False
            i+=1
         for i in str2:
            if i not in d:
               d[i]=1
      return True if 26-len(d) or str1 == str2 else False

ob = Solution()
print(ob.canConvert("aabcc", "ccdee"))

入力

"aabcc", "ccdee"

出力

True

  1. Pythonの文字列の論理演算子?

    Pythonの論理演算子「and」と「or」は文字列に適用できます。空の文字列は、Falseのブール値を返します。まず、これら2つの論理演算子「and」と「or」の動作を理解しましょう。 そして演算子 存在する場合は最初の偽の値を返し、存在しない場合は式または演算子の最後の値を返します。存在する場合は最初の真の値を返し、そうでない場合は式の最後の値を返します。 操作 結果 Xおよびy xがfalseの場合、y、それ以外の場合x Xおよびy xがfalseの場合、x、それ以外の場合はy xではない xがfalseの場合はtrue、それ以外の場合

  2. 文字のリストを文字列に変換するPythonプログラム

    Pythonはこの種の変換をたくさん必要とします。たとえば、このような変換はシリアル化の目的で役立ちます。このような変換の例は、-です。 ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'] to "hello world" Pythonには、このような変換に使用できる結合メソッドがあります。オブジェクトを連結するために使用される区切り文字列