替換空格
題目:
請實現一個函式,將一個字串中的每個空格替換成“%20”。
例如,當字串為We Are Happy.
則經過替換之後的字串為We%20Are%20Happy。
思路:
- 首先就不考慮使用自帶的replace函式了,不然沒有意義;開闢額外空間也可以做,比如用個StringBuilder在遍歷判斷的同時來拼接字元即可。
- 這裡使用in-place方法來實現。
- 如果不開闢新的字串,我們可以先計算出空格的數量,逆序遍歷字串,將空格後的字元整體後移兩位,在前面補上%20(不順序替換是因為那樣每遇到一個空格都要整體移動後面所有的字元,操作更多更耗時,逆序只需要移動一次)
程式碼:
public class Solution {
public String replaceSpace(StringBuffer str) {
if(str==null) return null;
char[] result = str.toString().toCharArray();
int count = 0;
for(char c :result){
if(c==' ') count ++;
}
// 擴容需要的大小
str.setLength(count*2+str.length());
for(int i = result.length-1;count>0;i--){
if(result[i]==' '){
count--;
str.setCharAt(i+2*count,'%');
str.setCharAt(i+2*count+1,'2');
str.setCharAt(i+2*count+2,'0');
}else{
str.setCharAt(i+2*count,result[i]);
}
}
return str.toString();
}
}
相關文章
- Problem 4:替換空格(字串)字串
- js替換字串裡的空格JS字串
- 【劍指offer】2.替換空格
- 正則替換 修改字元 去除空格字元
- 劍指offer-替換空格02
- offer通過--4替換空格-2
- [每日一題] 第十題:替換空格每日一題
- LeetCode 劍指 Offer 05. 替換空格LeetCode
- 替換字串中的空格《演算法很美》字串演算法
- javascript將字串中的多個空格替換為一個空格的正則例項JavaScript字串
- 第五章 字串專題 ---------------- 5.4 實踐:替換字串中的空格字串
- HTML 替換元素與非替換元素HTML
- Vi替換
- js replace替換字串,同時替換多個方法JS字串
- 替換橫槓
- linux文字替換Linux
- 替換燈桶
- SQL Server 替換SQLServer
- centos 替換yum源CentOS
- 里氏替換原則
- vim替換所有字元字元
- vim查詢替換
- Everspin MRAM替換FRAM
- perl替換特殊字元字元
- JS RegExp 替換字元JS字元
- Linux vi替換字串Linux字串
- 安卓資源字串中加全形空格、半形空格、換行、@%等特殊字元安卓字串字元
- winget 替換國內源
- 前端公共模組替換前端
- unity 統一替換shaderUnity
- js中字串的替換JS字串
- js中字串全部替換JS字串
- js replace 全域性替換JS
- 程式等待和程式替換
- idea替換內容快捷鍵 idea怎麼替換掉所選的文字Idea
- 網站程式碼修改替換流程圖,輕鬆掌握程式碼修改替換流程網站流程圖
- vi 正規表示式替換
- cad.net HandOverTo替換物件物件