1. 程式人生 > 其它 >【劍指offer】05. 替換空格

【劍指offer】05. 替換空格

劍指 Offer 05. 替換空格

知識點:

題目描述

請實現一個函式,把字串 s 中的每個空格替換成"%20"。

示例
輸入:s = "We are happy."
輸出:"We%20are%20happy."

解法一:

因為我們不知道最後替代後的長度是多少,所以可以用可變長的陣列StringBuilder或StringBuffer來,遇到空格就新增新的,其他不動。或者也可以直接建立一個長度是原陣列3倍的新陣列,適應一個變數來記錄長度,最後讀取到那裡就可以了;

class Solution {
    public String replaceSpace(String s) {
        StringBuilder sb = new StringBuilder();
        for(char c : s.toCharArray()){
            if(c != ' '){
                sb.append(c);
            }else{
                sb.append("%20");
            }
        }
        return sb.toString();
    }
}
class Solution {
    public String replaceSpace(String s) {
        int length = s.length();
        char[] array = new char[length * 3];
        int size = 0;
        for (int i = 0; i < length; i++) {
            char c = s.charAt(i);
            if (c == ' ') {
                array[size++] = '%';
                array[size++] = '2';
                array[size++] = '0';
            } else {
                array[size++] = c;
            }
        }
        String newStr = new String(array, 0, size); //注意這個方法;
        return newStr;
    }
}

時間複雜度:O(N);
空間複雜度;O(N);