首页 > 试题广场 > 替换空格
[编程题]替换空格
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

102个回答

添加回答
推荐
//思路
//1:从前往
   查看全部
编辑于 2015-12-07 18:51:44 回复(201)
strList=[]
        try:
            strList=s.split(' ')
            return '%20'.join(strList)
        except:
            pass
python处理比较简单,直接分割后再拼接就行了,拼接的时候加上%20
发表于 2018-10-17 16:13:43 回复(0)
# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        spaceCount = list(s).count(' ')
        if spaceCount == 0:
            return s
        p1, p2 = len(s)-1, len(s)-1+2*spaceCount
        res = s + ' '*(2*spaceCount)
        res = list(res)
        while p1 != p2:
            if res[p1] != ' ':
                res[p1], res[p2] = res[p2], res[p1]
                p1, p2 = p1-1, p2-1
            else:
                res[p2-2:p2+1] = '%20'
                p1, p2 = p1-1, p2-3
        return ''.join(res)


发表于 2018-10-08 16:37:11 回复(0)
# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        if len(s) < 1:
            return None

        length1, count = len(s), s.count(' ')
        length2 = length1 + count*2
        s_list = [v for v in s]
        s_list += [' ']*count*2
        left, right = length1 - 1, length2 - 1
        while left != right:
            if s_list[left] == ' ':
                left -= 1
                s_list[right] = '0'
                s_list[right-1] = '2'
                s_list[right-2] = '%'
                right -= 3
            else:
                s_list[right] = s_list[left]
                left -= 1
                right -= 1
        return ''.join(s_list)

思路:
双指针,一前一后,相遇时停止

发表于 2018-10-07 15:25:18 回复(0)
# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        return s.replace(' ','%20')
        # write code here

发表于 2018-09-22 21:11:08 回复(0)
python :
def replaceSpace(s):
    s = s.split(' ')
    sen=''
    for i in s[:-1]:
        if i == '':
            sen+='%20'
        else:
            sen+=i + '%20'
        
    if s[-1] != '':
        sen+=s[-1]
    return sen

发表于 2018-09-20 10:53:51 回复(0)

class Solution:

# s 源字符串
def replaceSpace(self, s):
    b = s.replace(' ', '%20')
    return b
编辑于 2018-09-13 22:18:38 回复(0)
用python 一句话啊,就是不知道能不能直接用库函数
# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        return s.replace(" ","%20")

发表于 2018-09-11 21:14:37 回复(0)

使用python

class Solution:
    def  replacespace(self,s):
        result=' '
        for i in range s:
            if i.isspace():
                result=result+'%20'
            else:
                result=result+i
        return result
发表于 2018-09-06 16:21:56 回复(1)
python2.7  两行代码解决,突然感觉到了python的强大。。。
one:list_s= s.split(' '),字符串转列表,以 ' ' 切分。
two:return '%20'.join(list_s),返回字符串,以'%20'连接列表元素。 

# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        list_s= s.split(' ')
        return '%20'.join(list_s)
发表于 2018-09-05 17:14:12 回复(0)
s = s.replace(' ', '%20')

发表于 2018-09-04 14:09:49 回复(0)
s = s.replace(' ','%20')
        #print(s)
        return s
发表于 2018-08-28 16:19:43 回复(0)
python one line
return '%20'.join(s.split(' '))
发表于 2018-08-21 13:32:01 回复(0)
#用python自带的字符串处理函数replace可以实现
# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        if not s:
            return s
        return s.replace(' ', '%20')

发表于 2018-08-19 18:38:37 回复(0)
#2018-08-18 思密达
# 非常简单的代码
#新建一个列表,判断字符串的第i位字符是否为空,若是,则将字符串"%20"添加进列表;否则,将字符串的第i位字符添加进列表。最后将列表转换为字符串即可

# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        res = []
        for i in range(len(s)):
            if s[i] != ' ':
                res.append(s[i])
            else:
                res.append("%20")
        return ''.join(res)  # 列表转换为字符串

发表于 2018-08-18 13:49:57 回复(0)
# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        ss=s.replace(' ','%20')
        return ss
一个replace方法就解决了
发表于 2018-08-17 20:48:09 回复(0)
# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        a = s.split(" ")
        return '%20'.join(a)


发表于 2018-08-14 15:23:28 回复(0)

# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        result = s.split(" ")
        return "%20".join(result)
        


编辑于 2018-08-10 11:11:45 回复(0)

利用python 字符串替换,字符串替换可以用内置的方法和正则表达式完成。
用字符串本身的replace方法,两句解决问题。
ch=s.replace(' ','%20')
return ch

发表于 2018-08-07 14:40:42 回复(0)
开辟新的字符串
# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        myStr = ""
        for i in s:
            if i == ' ':
                myStr += "%20"
            else:
                myStr += i
        return myStr

发表于 2018-08-05 12:42:08 回复(0)
遍历+选择替换

# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        b = ''
        for si in s:
            if si == ' ':
                b += '%20'
            else:
                b += si
        return b

发表于 2018-07-30 14:43:49 回复(0)

扫一扫,把题目装进口袋

牛客网,程序员必备求职神器

扫描二维码,进入QQ群

扫描二维码,关注牛客网公众号