替换空格

来源:互联网 发布:sql查询成绩最高分 编辑:程序博客网 时间:2024/05/20 13:16

题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

在Python脚本中只需要将空个替换就可以

# -*- coding:utf-8 -*-class Solution:    # s 源字符串    def replaceSpace(self, s):        #j=len(s)        s=s.split(' ')        str1=[]        for i in range(len(s)):            str1.append(s[i])            if (i!=len(s)-1):                str1.append('%20')        str1=''.join(str1)        return str1        # write code here

时间有点慢,看了第一名的代码:

class Solution:    # s 源字符串    def replaceSpace(self, s):        #j=len(s)        s=list(s)        count=len(s)        for i in range(0,count):            if (s[i]==' '):                s[i]='%20'        return ''.join(s)

运行时间有点问题,不知道是和自己笔记本本身问题还是什么,需要进一步刷题来了解,不过总算没问题了。

以下是c++版本:

class Solution {public:    void replaceSpace(char *str,int length) {         int oldcount=0;         int kongge=0;         for (int i=0;str[i]!='\0';i++)         {             oldcount++;             if (str[i]==' ')                 ++kongge;         }          int newlength=oldcount+2*kongge;         char *pstr=str+oldcount;         char *pstr1=str+newlength;         while(pstr<pstr1)             {             if (*pstr==' ')             {   *pstr1--='0';                 *pstr1--='2';                 *pstr1--='%';}                 else            {                *pstr1--=*pstr;            }            --pstr;    }     }};

此版本是参照第一名代码写的,c++和python不同的地方是字符串有固定的大小,不能在原来的字符串直接进行添加元素,需要进行先计算内存大小后进行申请才能操作,具体术语不会,总之大概意思这样。

原创粉丝点击