剑指 Offer 05. 替换空格

题目

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

示例 1:

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

限制:

0 <= s 的长度 <= 10000

解答

    public static String replaceSpace(String s) {
        char[] ss = s.toCharArray();
        int m = ss.length, count = 0;
        // 统计字符串的空格数
        for (int i = 0; i < m; i++) {
            if(ss[i] == ' ')
                count++;
        }
        int n = m + 2 * count;
        char[] sss = new char[n];
        int i = m - 1, j = n - 1;
        while(i >= 0){
            if(ss[i] != ' '){
                sss[j] = ss[i];
                i--;
                j--;
            }else{
                sss[j] = '0';
                sss[j-1] = '2';
                sss[j-2] = '%';
                i--;
                j -= 3;
            }
        }
        return String.valueOf(sss);
    }
posted @ 2021-07-01 17:24  sinlearn  阅读(38)  评论(0编辑  收藏  举报