Python 2.7を使用し、以下の文字列を使用して問題を置き換え、アルゴリズム空間の複雑さとアルゴリズムの複雑さの点でより良いアイデアがあるのだろうか?Python 2.7の文字列置換
文字列Python 2.7が不変であるため、結果を表す追加のリストを作成します。また、文字置換テーブルの検索を高速化するための追加辞書も作成しました。
この例では、From:"lod"
とTo:"xpf"
は、l
で満たされた場合、x
に置き換えます。 o
を満たした場合は、p
に置き換えてください。 d
を満たした場合は、f
に置き換えてください。
'''
Given "data", "from", and "to" fields, replaces all occurrences of the characters in the "from" field in the "data" field, with their counterparts in the "to" field.
Example:
Input:
Data: "Hello World"
From: "lod"
To: "xpf"
Output:
"Hexxp Wprxf"
'''
from collections import defaultdict
def map_strings(from_field, to_field, data):
char_map = defaultdict(str)
result = []
for i,v in enumerate(from_field):
char_map[v]=to_field[i]
for v in data:
if v not in char_map:
result.append(v)
else:
result.append(char_map[v])
return ''.join(result)
if __name__ == "__main__":
print map_strings('lod', 'xpf', 'Hexxp Wprxf')
[str.maketrans](https://docs.python.org/3/library/stdtypes.html#str.maketrans) – wwii
質問を注意してください@wwii 'python-2.7'タグが付いています。 'str.maketrans'メソッドはPython 3にしか存在しませんが、私の答えではPython 2には少し違う' string.maketrans'関数があります。 –
@ PM2Ring、aye '' 'string.maketrans'''です。 – wwii