leetcode 面试题 01.03. URL化

⭐️ 题目描述

leetcode 面试题 01.03. URL化_第1张图片


leetcode链接:面试题 01.03. URL化

思路: 计算出空格的个数,我们可以知道最后一个字符的位置 endPos,再从后 end 向前遍历若不是空格正常拷贝,是空格则替换成 %20,最终当空格替换完成的时候,endPosend 两个下标会相遇。

代码:

char* replaceSpaces(char* S, int length) {
    // 计算空格个数
    int count = 0;
    for (int i = length - 1; i >= 0; i--) {
        if (S[i] == ' ') 
            count++;
    }

    // 计算最后一个字符的最终位置
    int endPos = length - count + count * 3;
    S[endPos--] = 0;
    // 最后一个字符当前位置
    int end = length - 1;
    while (endPos != end) {
        if (S[end] != ' ') {
            S[endPos--] = S[end--];
        }
        else {
            S[endPos--] = '0';
            S[endPos--] = '2';
            S[endPos--] = '%';
            end--;
        }
    }

    return S;
}

你可能感兴趣的:(刷题,leetcode,学习,刷题)