leetcode-面试题 01.03. URL化
URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)
示例 1:
输入:"Mr John Smith ", 13
输出:“Mr%20John%20Smith”
示例 2:
输入:" “, 5
输出:”%20%20%20%20%20"
提示:
字符串长度在 [0, 500000] 范围内。
解题思路:
本题和剑指offer05特别相似。开辟一个新的字符串的方法效率不太高,所以仍然使用双指针。但是要明确边界范围。
class Solution {
public:
string replaceSpaces(string s,int length) {
int count=0;
for(int i=0;i<length;i++)
{
if(s[i]==' ')
count++;
}
s.resize(length+2*count);
for(int i=length-1,j=s.size()-1;i<j;i--,j--)
{
if(s[i]!=' ') s[j]=s[i];
else
{
s[j-2]='%';
s[j-1]='2';
s[j]='0';
j-=2; //for中有j--
}
}
return s;
}
};