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

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を返す
  • 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

  1. PythonのUnicode文字列

    Pythonの通常の文字列は内部で8ビットASCIIとして保存されますが、Unicode文字列は16ビットUnicodeとして保存されます。これにより、世界中のほとんどの言語の特殊文字を含む、より多様な文字セットが可能になります。 Unicode文字列の扱いを次のように制限します- 例 #!/usr/bin/python print u'Hello, world!' 出力 上記のコードを実行すると、次の結果が生成されます- Hello, world! ご覧のとおり、生の文字列がプレフィックスrを使用するのと同じように、Unicode文字列はプレフィックスuを使用します。

  2. %はPythonの文字列に何をしますか?

    %は、文字列フォーマット演算子または補間演算子です。 formatの%値(formatは文字列)を指定すると、formatの%変換仕様は、0個以上の値の要素に置き換えられます。この効果は、C言語でsprintf()を使用する場合と同様です。たとえば、 >>> lang = "Python" >>> print "%s is awesome!" % lang Python is awesome この表記で数値をフォーマットすることもできます。たとえば、 >>> cost = 128.527 >&