leetcode-面试题 01.03. URL化

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;
    }
};

你可能感兴趣的:(字符串,字符串,指针)