使用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