【劍指offer】05. 替換空格
阿新 • • 發佈:2021-07-21
劍指 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);