首页 > 试题广场 >

替换空格

[编程题]替换空格
  • 热度指数:152507 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
请实现一个函数,将一个字符串s中的每个空格替换成“%20”。
例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

数据范围:。保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种。

示例1

输入

"We Are Happy"

输出

"We%20Are%20Happy"
示例2

输入

" "

输出

"%20"
推荐
使用JavaScript实现:
方法一:暴力破解
function replaceSpace( s ) {
    let result = '';
    for(let i = 0;i < s.length;i++) {
        if(s[i] === ' ') {
            result += '%20';
        } else {
            result += s[i];
        }
    }
    return result;
}
方法二:使用字符串的replace方法,将正则对象作为参数传入replace方法
function replaceSpace( s ) {
    let regx = new RegExp(' ','g');
    return s.replace(regx,'%20');
}
方法三:将字符串以空格作为分隔符使用split()转成数组,然后对数组使用join()方法
function replaceSpace( s ) {
    return s.split(' ').join('%20');
}
方法四:将字符串使用扩展运算符转成数组,然后使用数组的map方法
function replaceSpace( s ) {
    let arr = [...s].map(item => {
        return item === ' ' ? '%20' : item;
    });
    return arr.join('');
}
编辑于 2021-07-06 10:36:50 回复(4)
class Solution:
    def replaceSpace(self , s: str) -> str:
        # write code here
        s=s.replace(" ","%20")
        return s
发表于 2023-01-20 17:13:11 回复(0)
class Solution:
    def replaceSpace(self , s: str) -> str:
    # write code here
    return s.replace(' ','%20')
发表于 2022-10-23 16:07:10 回复(0)
class Solution:
    def replaceSpace(self , s: str) -> str:
        # write code here
        a = ""
        for i in s:
            if i == " ":
                i = "%20"
            a = a + i
        return a
发表于 2022-07-02 15:22:48 回复(0)
def tk(str,find_str,re_str):
    if not find_str in str:
        return str          #如果找不到返回原字符串
    l=[];re_str_index=[]
    for i in range(0,len(str)):
        l.append(str[i:i+len(find_str)])        #按find_str长度分割原字符串保存到列表中
    for i in range(len(l)):
        if l[i]==find_str:
            l[i]=re_str                         #替换字符串
            re_str_index.append(i)              #保存替换时的索引位置
    for i in range(len(l)):
        for j in re_str_index:
            if i==j:
                l[i+1:i+len(find_str)]=""       #使find_str中对应的l首个字符为空,方便后续合并
    new_str_lis=[]
    for i in range(len(l)):
        if not i in re_str_index:
            new_str_lis.append(l[i][0])         #如果index_l(即i)不在re_str_index里,则读取l[i]首个字符
        else:
            new_str_lis.append(l[i])            #否则直接读取替换时的字符串,即读取re_str等价于l[i]
    return "".join(new_str_lis)
print(tk(str="We Are Hap%20py",find_str=" ",re_str="%20"))
print(tk(str="We Are Hap%20py",find_str=" Ar",re_str="%20"))
print(tk(str="We Are Hap%20py",find_str="3",re_str="%20"))

发表于 2022-06-01 13:07:01 回复(0)
做了之后才发现原来python可以直接获取到字符串中的空格
class Solution:
    def replaceSpace(self , s ):
        # write code here
        string = ""
        for item in s:
            if item == " ":
                item = "%20"
                string += item
            else:
                string += item
        return string
#        return s.replace(" ", "%20")  #采用内部自带的函数实现
发表于 2021-09-01 11:33:52 回复(0)
class Solution:
    def replaceSpace(self , s ):
        s_replace = ''
        for index, value in enumerate(s):
            if value == ' ':
                s_replace += '%20'
            else:
                s_replace += s[index]
        return s_replace
发表于 2021-08-08 22:25:03 回复(0)
class Solution:
  def replaceSpace(self, s):
    string = ""
        for item in s:
            if item == "":
                item == "%20"
                string += item 
        return string

发表于 2021-07-30 13:42:40 回复(0)