本文主要是介绍剑指offer2.替换空格,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
https://www.nowcoder.com/practice/4060ac7e3e404ad1a894ef3e17650423?tpId=13&tqId=11155&tPage=1&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking
题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
很容易想到:
# -*- coding:utf-8 -*-
class Solution:# s 源字符串def replaceSpace(self, s):# write code heres = s.replace(' ', '%20')return s
显然题目不是考这个,所以从前往后插入:
# -*- coding:utf-8 -*-
class Solution:# s 源字符串def replaceSpace(self, s):# write code herespace_count = list(s).count(' ')if space_count == 0:return snew_list = list(s) + ['0'] * (2*space_count)i = 0while i < len(new_list):if new_list[i] != ' ':i += 1else:new_list[i+3:len(new_list)] = new_list[i+1:len(new_list)-2]new_list[i:i+3] = ['%', '2', '0']return ''.join(new_list)
这样移动的次数太多了,所以考虑从后往前插入:
# -*- coding:utf-8 -*-
class Solution:# s 源字符串def replaceSpace(self, s):# write code herespace_count = list(s).count(' ')if space_count == 0:return snew_list = list(s) + [' '] * (2*space_count)i, j = len(list(s))-1, len(new_list) - 1while i != j:if new_list[i] != ' ':new_list[j] = new_list[i]j -= 1else:new_list[j-2:j+1] = ['%', '2', '0']j -= 3i -= 1return ''.join(new_list)
这篇关于剑指offer2.替换空格的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!