由於陣列在定義時必須指定其長度,因此必須先統計有多少個空格,然後計算新陣列的長度為:length+2*(空格數);因為%20佔三個位置,而原來的空格佔乙個位置。然後從頭或者從尾遍歷依次將原字串中字元複製到新的數字中,遇到「 」時新陣列依次複製三個字元「% 2 0」。
public class code004
}private static char solution(string inline)
// char newlist=new char[list.length+]
//將字串轉成char陣列,便於統計空格符的個數
char list=inline.tochararray();
int originallength=list.length;
int numberofblank=0;
//遍歷統計空格符的個數
for(int i=0;i}
//定義新的字串陣列長度;為原陣列長度+空格符個數*2;因為%20為3個字元,而原來乙個空格佔乙個字元,因此乘以2;當然這裡也可以
// 直接將%20視為乙個字元整體;那樣問題就更簡單了
int newlength=originallength+2*numberofblank;
char resultlist=new char[newlength];
int i=0;
int j=0;
//或者從後往前依次複製。
while (ii++;
}return resultlist;
}}
劍指offer 2 字串的空格
時間限制 1秒 空間限制 32768k 熱度指數 594664 本題知識點 字串 知識補充 stringbuffer物件有乙個tostring 方法,就是將你的快取的字串列印出來,是string型別的 2 單引號和雙引號的區別 3 stringbuffer的常用方法 本人 public class ...
劍指offer 字串空格符替換
實現 輸入乙個字串,將字串中的空格替換為 20 輸出。這裡假設string傳入的字串末尾擁有足夠的容量 例如 輸入 hello world.輸出 hello 20world.include include using namespace std my version void replacestrb...
劍指offer系列之二 字串空格替換
看到這題,我的第一思路是這樣的 一組單詞不是有空格嘛,所以直接使用string類的split函式直接分割為char陣列不就好了,不過在這之前需要判斷一下第乙個位置和最後乙個位置是否有空格,然後針對空格的出現情況再進行替換。發現oj的時候,如你所猜,自然是失敗的。因為我忽略乙個問題,就是如果乙個句子中...