文字列は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
-
Pythonの文字列の論理演算子?
Pythonの論理演算子「and」と「or」は文字列に適用できます。空の文字列は、Falseのブール値を返します。まず、これら2つの論理演算子「and」と「or」の動作を理解しましょう。 そして演算子 存在する場合は最初の偽の値を返し、存在しない場合は式または演算子の最後の値を返します。存在する場合は最初の真の値を返し、そうでない場合は式の最後の値を返します。 操作 結果 Xおよびy xがfalseの場合、y、それ以外の場合x Xおよびy xがfalseの場合、x、それ以外の場合はy xではない xがfalseの場合はtrue、それ以外の場合
-
文字のリストを文字列に変換するPythonプログラム
Pythonはこの種の変換をたくさん必要とします。たとえば、このような変換はシリアル化の目的で役立ちます。このような変換の例は、-です。 ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'] to "hello world" Pythonには、このような変換に使用できる結合メソッドがあります。オブジェクトを連結するために使用される区切り文字列