程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 劍指offer二:替換空格,劍指offer空格

劍指offer二:替換空格,劍指offer空格

編輯:JAVA綜合教程

劍指offer二:替換空格,劍指offer空格


題目描述:

請實現一個函數,將一個字符串中的空格替換成“%20”。例如,當字符串為We Are Happy.則經過替換之後的字符串為We%20Are%20Happy。

解題思路:

本題中需要注意,新的字符串的長度要比舊的字符串長度長,這意味著,從前往後替換的話,每更換一次,後面的字符就要向後移動。因此,在替換的過程中需要考慮到時間復雜度和空間復雜度的問題。

 

public class Solution {
    public String replaceSpace(StringBuffer str) {
        int spaceNum = 0;
        //1.先計算出字符串中的空格數
        for(int i = 0; i < str.length(); i ++){
            if(str.charAt(i) == ' '){
                spaceNum ++;
            }
        }
        
        //舊數組下標
        int indexold = str.length() -1;
        //新數組下標
        int indexnew = str.length() + 2*spaceNum -1;
        int index = indexnew;
        String str1 = "";
        //定義新的數組
        char[] strArr = new char[indexnew+1];
        for(int j = indexold; j >= 0; j --){
            if(str.charAt(j) != ' '){
                strArr[index] = str.charAt(j);
                index--;
            }else{
                strArr[index] = '0';
                strArr[index-1] = '2';
                strArr[index-2] = '%';
                index-=3;
            }
        }
       // strArr[0] = str.charAt(0);
        //將字符數組轉變為String
        for(int k = 0; k < strArr.length; k++){
            str1+=strArr[k];
        }
        return str1;
    }
}

測試結果:

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved