玩命加载中 . . .

5-替换空格


剑指 Offer 05. 替换空格

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

method 1: 模拟

string replaceSpace(string s) {
    string t;
    for (auto elem : s) {
        if (elem == ' ') t += "%20";
        else t += elem;
    }
    return t;
}

method 2: 双指针

两个指针从后往前赋值,p1指向原string的末尾,p2指向新string末尾,如果p1不是空格,给p2赋值p1,否则p2从后往前赋值%20

string replaceSpace(string s) {
    int n = s.size();
    for (int i = 0; i < n; ++i) {
        if (isspace(s[i])) s += "  ";
    }
    int p1 = n - 1, p2 = s.size() - 1;
    while (p1) {
        if (!isspace(s[p1])) {
            s[p2--] = s[p1];
        }
        else {
            s[p2--] = '0';
            s[p2--] = '2';
            s[p2--] = '%';
        }
        p1--;
    }
    return s;
}

文章作者: kunpeng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 kunpeng !
  目录