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

 

示例 1:

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

 

限制:

0 <= s 的长度 <= 10000

Related Topics
  • 字符串

  • 👍 229
  • 👎 0
  • 【一个变仨】有多少个空格就长度多多少个2呗

    不复杂,看代码遍历下看下有几个空格,一个空格变成`%20`的三个这样长度就多出来了2。然后把原来字符串s对应复制到新的char[]数组中,如果遇到了空格,就赋值为’%’和’2’和’0′,并且下标往后移动两位

    class Solution {
        public String replaceSpace(String s) {
            int count = 0;
            for (int i = 0; i < s.length(); i++) {
                count += s.charAt(i) == ' '?1:0;
            }
            if (count == 0){
                return s;
            }
            char[] arr = new char[s.length()+ count*2 ];
            int idxForS = -1;
            int idxForArr = 0;
            while (++idxForS < s.length()){
                if (s.charAt(idxForS) != ' '){
                    arr[idxForArr] = s.charAt(idxForS);
                }else{
                    arr[idxForArr] = '%';
                    arr[++idxForArr] = '2';
                    arr[++idxForArr] = '0';
                }
                idxForArr++;
            }
            return new String(arr);
        }
    }