剑指offer-JZ2 替换空格
难度:较难
考点:字符串
题目描述:
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题思路:
最容易想到的是s.replace(a,b)函数,用b直接替换a
但是replace是只有在python中才有的,这道题的考点主要是C语言中实现替换。
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param s string字符串 # @return string字符串 # class Solution: def replaceSpace(self , s ): # write code here #c中的考点主要是,替换的位数是不一样的,每替换一个空格,需要往后挪2位 # 因为这样比较复杂,所以可以先用一个列表,来倒序存储所有元素,然后再用a.reverse()来翻转,最后再转换为字符串 # 其实也可以直接写,不翻转,一样的 b = [] for i in range(len(s)): if s[i] == ' ': b.extend('%20') else: b.append(s[i]) return ''.join(b) # a = [] # for i in range(len(s)-1,-1,-1): #range为左开右闭,最后一个-1表示每次取最后的 # if s[i] == ' ': # a.append('0') # a.append('2') # a.append('%') # else: # a.append(s[i]) # a.reverse() # return ''.join(a) ''' return s.replace(' ','%20') # python中可以直接用replace,但是c语言中不能这样子,需要自己定义来实现 '''