請實現乙個函式,將乙個字串中的每個空格替換成「%20」。
有三種方法實現:
package com.learn.swordoffer;
public class replacespace_02
//建立新的字串實現,但是不呼叫string方法
public string replacespace2(stringbuffer str) else
}return strstr;
}//不建立新的字串實現,原地替換,o(n)的解法
public string replacespace3(stringbuffer str)
//空格數量
int numofblank = 0;
int len = str.length();
//計算空格數量
for (int i = 0; i < len; i++)
}//設定字串長度
str.setlength(len + numofblank * 2);
//定義兩個指標
int startindex = len - 1;
int endindex = str.length() - 1;
while (startindex >= 0 && startindex < endindex) else
}return str.tostring();
}public static void main(string args)
}
第一種和第二種方法比較容易實現,面試的時候更多是考察的string.replace()方法原始碼的實現的思路。
參考:
劍指offer 空格替換 2
public class solution 方法二 新建stringbuffer拼接 public class solution else return result.tostring 附加 string 字串常量 string的值是可變的,每次的操作都會建立新的物件,很浪費空間。stringbuf...
LeetCode劍指Offer05 替換空格
leetcode劍指offer05.替換空格 題目 請實現乙個函式,把字串 s 中的每個空格替換成 20 示例 1 題解 1.常規方法 先遍歷一遍陣列,記錄空格的個數count,再擴充套件字元陣列長度為 s.size 2 count 用雙指標從後往前替換空格,乙個指標指向擴充套件前的最後一位,乙個指...
劍指offer(2) 替換空格
假設面試官讓我們在原來的字串上做替換。時間複雜度為o n 的解法。我們可以先遍歷一遍字串,這樣就能統計出字串中空格的總數,並可以由此計算出替換之後的字串的總長度。每替換乙個空格,長度增加2,因此替換以後字串的長度等於原來的長度加上2乘以空格數目。length為牛客系統規定字串輸出的最大長度,固定為乙...