当前位置:网站首页>剑指 Offer 05. 替换空格

剑指 Offer 05. 替换空格

2022-07-05 08:16:00 程序员·小李

题目:

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

示例 1:

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

限制:

0 <= s 的长度 <= 10000

思路:

1. 先进行一次遍历,查看空格的个数,空格需要替换成“%20”,因此需要对数组进行扩容。array.length - count + count * 3便是替换后数组的大小。

2. 从后向前依次复制。

class Solution {
    public String replaceSpace(String s) {
        if (s == null){
            return null;
        }

        char[] array = s.toCharArray();
        int count = 0;
        for (char c : array){
            if (c == ' '){
                count++;
            }
        }

        char[] newArray = new char[array.length - count + count * 3];
        int pointer = newArray.length - 1;
        for (int j = array.length - 1; j >= 0; j--){
            if (array[j] != ' '){
                newArray[pointer--] = array[j];
                continue;
            }
            newArray[pointer--] = '0';
            newArray[pointer--] = '2';
            newArray[pointer--] = '%';
        }

        return new String(newArray);
    }
}

 

原网站

版权声明
本文为[程序员·小李]所创,转载请带上原文链接,感谢
https://everspringlee.blog.csdn.net/article/details/125610522