剑指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语言中不能这样子,需要自己定义来实现
'''

 

 
posted @ 2021-07-15 21:46  LLLLgR  阅读(34)  评论(0编辑  收藏  举报