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

Python-2つの文字列が本質的に同形であるかどうかを確認します


2つの文字列が本質的に同形であるかどうかを確認する必要がある場合、2つの文字列をパラメーターとして受け取るメソッドが定義されます。文字列の長さを繰り返し処理し、「ord」メソッドを使用して文字を整数に変換します。

以下は同じもののデモンストレーションです

MAX_CHARS = 256

def check_isomorphic(str_1, str_2):
   len_1 = len(str_1)
   len_2 = len(str_2)

   if len_1 != len_2:
      return False

   marked = [False] * MAX_CHARS
   map = [-1] * MAX_CHARS

   for i in range(len_2):

      if map[ord(str_1[i])] == -1:

         if marked[ord(str_2[i])] == True:
            return False

         marked[ord(str_2[i])] = True

         map[ord(str_1[i])] = str_2[i]

      elif map[ord(str_1[i])] != str_2[i]:
         return False
   return True
str_1 = 'aababa'
str_2 = 'xxyyxx'
print("The first string is :")
print(str_1)
print("The second string is :")
print(str_2)
print("Is the first string isomorphic ?")
print(check_isomorphic("aab","xxy"))
print("Is the second string isomorphic ?")
print(check_isomorphic("aab","xyz"))

出力

The first string is :
aababa
The second string is :
xxyyxx
Is the first string isomorphic ?
True
Is the second string isomorphic ?
False

説明

  • 「check_isomorphic」という名前のメソッドが定義されています。

  • このメソッドは、パラメーターとして2つの文字列を取ります。

  • 文字列の長さを決定します。

  • 文字列の長さが同じでないことを確認する必要があります。

  • 2つのリストが作成され、1つには「False」値が含まれ、もう1つには「-1」値が含まれます。

  • 2番目の文字列の長さが繰り返され、最初の文字列の文字が整数に変換されます。

  • リスト内の「False」値に対応する値が変更されます。

  • 関数の外部では、2つの文字列が定義され、コンソールに表示されます。

  • このメソッドは、これらの文字列をパラメーターとして渡すことによって呼び出されます。

  • 出力はコンソールに表示されます。


  1. PythonのUnicode文字列

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

  2. Pythonで2つの文字列を結合して1つの文字列に変換するにはどうすればよいですか?

    Pythonで2つの文字列を結合するには、連結演算子+を使用できます。例: str1 = "Hello" str2 = "World" str3 = str1 + str2 print str3 これにより、出力が得られます: HelloWorld str.join(seq)を使用して、複数の文字列を結合することもできます。例: s = "-"; seq = ("a", "b", "c"); # This is sequence of strings. print s.j