题目描述:

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

例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。


**题解1:使用辅助字符串


代码

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return string字符串
     */
    string replaceSpace(string s) {
        // write code here
        string str;
        for(int i =0;i<s.size();i++){
            if(s[i] ==' ')
                str+="%20";
            else
                str+=s[i];
        }
        return str;
    }
};

题解2:不使用辅助字符串


class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return string字符串
     */
    string replaceSpace(string s) {
        // write code here
	int len = s.size();
	for (int i = 0; i < len; i++) {
		if (s[i] == ' ')
			s += "  ";//字符串末尾增加三个字符
	}
	int i = len - 1;//s[i]指向原来的字符串末尾
	int j = s.size() - 1;//s[j]指向新字符串末尾
	for (i; i >= 0; i--) {
		if (s[i] == ' ') {
			s[j--] = '0';//替换字符同时向前移动指针
			s[j--] = '2';
			s[j--] = '%';
		}
		else {
			s[j--] = s[i];
		}
	}
	return s;
    }
};