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