题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。
例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy.
思路:需要借助一个新的字符串,构建时将原字符串的空格全部换成“%20”,切勿大量移动原字符串中的元素
python 有 split 函数 和 join 函数,一句代码就能搞定
C/C++ 运行时间:8ms 占用内存:952k
class Solution
{
public:
void replaceSpace(char *str,int length)
{
string mid = ""; //暂存一下
for(int i=0; i<length; ++i)
{
if(str[i]==' ')
mid += "%20";
else
mid += str[i];
}
for(int i=0; i<mid.length(); ++i)
{
str[i] = mid[i];
}
}
};
Java 运行时间:17ms 占用内存:9616k
public class Solution
{
public String replaceSpace(StringBuffer str)
{
StringBuffer mid = new StringBuffer();
for(int i=0; i<str.length(); ++i)
{
if(str.charAt(i)==' ') //charAt()取下标元素
mid.append("%20"); //append()在尾部追加
else
mid.append(str.charAt(i));
}
return mid.toString(); //转换成String类型
}
}
Python 运行时间:25ms 占用内存:5752k
# -*- coding:utf-8 -*-
class Solution:
# s 源字符串
def replaceSpace(self, s):
# write code here
ans = ""
for i in range(len(s)): #len(s)返回整型元素,不能对int型遍历
if s[i]==' ':
ans += "%20"
else:
ans += s[i]
return ans
Python 解法2:split 和 join 函数
# -*- coding:utf-8 -*-
class Solution:
# s 源字符串
def replaceSpace(self, s):
# write code here
return '%20'.join(s.split(' '))