1. 程式人生 > 實用技巧 >劍指Offer:替換空格(5)

劍指Offer:替換空格(5)

題目描述:

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

解題思路:

在字串後任意填充字元,使得字串替換前的長度=替換後的長度,例如上面這個例子,替換前長度為12,替換後的長度為16,所以在原來字串的基礎上填充2位.

p1指向填充前的末尾,p2指向填充後的末尾:

然後p1,p2一起前移,如果p1不是空格,則p2=p1;如果p1是空格,則p2依次輸入"02%"

 1 public class Solution {
 2     public String replaceSpace(StringBuffer str) {
3 int p1 = str.length()-1; 4 for(int i=0;i<=p1;i++){ 5 if(str.charAt(i)==' ') 6 str.append(" "); 7 } 8 int p2 = str.length()-1; 9 while(p1>=0 && p2>p1){ 10 char c = str.charAt(p1--); 11 if
(c==' '){ 12 str.setCharAt(p2--,'0'); 13 str.setCharAt(p2--,'2'); 14 str.setCharAt(p2--,'%'); 15 }else{ 16 str.setCharAt(p2--,c); 17 } 18 } 19 return str.toString(); 20 } 21 }