"""
面试题5:替换空格
把字符串中的每个空格替换成“%20”
(Python中字符串为不可变类型,这里将其转化为列表)
"""
def replace(string: list, length: int):
if(string == [] or length <= 0):
return -1
original_len = 1
blank_len = 0
i = 0
while string[i] != '.':
original_len += 1
if string[i] == ' ':
blank_len += 1
i += 1
end_len = original_len + blank_len * 2
if(end_len > length):
return -1
index_original = original_len - 1
index_new = end_len - 1
while(index_original >= 0 and index_new > index_original):
if string[index_original] == ' ':
string[index_new] = '0'
string[index_new - 1] = '2'
string[index_new - 2] = '%'
index_new -= 3
else:
string[index_new] = string[index_original]
index_new -= 1
index_original -= 1
if __name__ == '__main__':
s = "I am a student."
list_s = list(s + ' ')
replace(list_s, 30)
result = ''.join(list_s)
print(result)
剑指offer面试题5:替换空格(Python实现)
最新推荐文章于 2025-12-18 10:59:28 发布
146

被折叠的 条评论
为什么被折叠?



