1. 题目
URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)
示例1:输入:"Mr John Smith ", 13输出:"Mr%20John%20Smith"示例2:输入:" ", 5输出:"%20%20%20%20%20"提示:
字符串长度在[0, 500000]范围内。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/string-to-url-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
class Solution {
public:string replaceSpaces(string S, int length) {string ans;for(int i = 0; i < length; ++i){if(S[i] == ' ')ans += "%20";elseans += S[i];}return ans;}
};
- 可以一次性申请string的所需空间,性能较好
class Solution {
public:string replaceSpaces(string S, int length) {int i, j, count = 0;for(i = 0; i < length; ++i){if(S[i] == ' ')count++;}int len = length-count+3*count;string ans(len,' ');for(i = 0, j = 0; i < length; ++i,++j){if(S[i] != ' ')ans[j] = S[i];else{ans[j++] = '%';ans[j++] = '2';ans[j] = '0';}}return ans;}
};