Pythonのバディ文字列
小文字の2つの文字列AとBがあるとします。結果がBと等しくなるように、Aの2文字を交換できるかどうかを確認する必要があります。
したがって、入力がA ="ba"、B ="ab"の場合、出力はTrueになります。
これを解決するには、次の手順に従います-
- AのサイズがBのサイズと同じでない場合は、
- Falseを返す
- それ以外の場合、AとBに一般的ではない要素がある場合は、
- Falseを返す
- それ以外の場合、AがBと同じであり、すべての文字がAで異なる場合、
- Falseを返す
- それ以外の場合、
- count:=0
- 0からAのサイズの範囲のiについては、
- A[i]がB[i]と同じでない場合、
- count:=count + 1
- カウントが3と同じ場合、
- Falseを返す
- A[i]がB[i]と同じでない場合、
- Trueを返す
理解を深めるために、次の実装を見てみましょう-
例
class Solution: def buddyStrings(self, A, B): if len(A)!=len(B): return False elif sorted(A)!=sorted(B): return False elif A==B and len(set(A))==len(A): return False else: count=0 for i in range(len(A)): if A[i]!=B[i]: count+=1 if count==3: return False return True ob = Solution() print(ob.buddyStrings("ba","ab"))
入力
"ba","ab"
出力
True
-
PythonのUnicode文字列
Pythonの通常の文字列は内部で8ビットASCIIとして保存されますが、Unicode文字列は16ビットUnicodeとして保存されます。これにより、世界中のほとんどの言語の特殊文字を含む、より多様な文字セットが可能になります。 Unicode文字列の扱いを次のように制限します- 例 #!/usr/bin/python print u'Hello, world!' 出力 上記のコードを実行すると、次の結果が生成されます- Hello, world! ご覧のとおり、生の文字列がプレフィックスrを使用するのと同じように、Unicode文字列はプレフィックスuを使用します。
-
%はPythonの文字列に何をしますか?
%は、文字列フォーマット演算子または補間演算子です。 formatの%値(formatは文字列)を指定すると、formatの%変換仕様は、0個以上の値の要素に置き換えられます。この効果は、C言語でsprintf()を使用する場合と同様です。たとえば、 >>> lang = "Python" >>> print "%s is awesome!" % lang Python is awesome この表記で数値をフォーマットすることもできます。たとえば、 >>> cost = 128.527 >&