剑指 Offer 05. 替换空格

请实现一个函数,把字符串 s 中的每个空格替换成”%20”。

示例 1:

输入:s = "We are happy."
输出:"We%20are%20happy."

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

Solution 1

class Solution {
    public String replaceSpace(String s) {
        // StringBuffer 线程安全 较慢
        // StringBuilder 线程不安全 较快
        StringBuilder sb = new StringBuilder();
        char c;
        for (int i = 0; i < s.length(); i++) {
            c = s.charAt(i);
            if (c == ' ')
                sb.append("%20");
            else
                sb.append(c);
        }
        return sb.toString();
    }
}

Solution 2

cpp

#include <string>

class Solution
{
protected:
    string result;

public:
    string replaceSpace(string s)
    {
        result.clear();
        for (size_t i = 0; i < s.length(); i++)
        {
            if (s[i] == ' ')
            {
                result.push_back('%');
                result.push_back('2');
                result.push_back('0');
            }
            else
            {
                result.push_back(s[i]);
            }
        }

        return result;
    }
};