5. 替換空格[java]

題目描述 在線編程

將一個字符串中的空格替換成 "%20"。編程

 

Input: "A B" Output: "A%20B"

解題思路

要求在原字符串上改動,要將空格替換成 "%20",即每有1個空格字符串長度增長2;app

1.先給原字符串擴展長度,每有1個空格長度增長2個單位spa

2.用雙指針法,指針p2指向擴展後字符串尾,指針p1指向原字符串的尾,從後往前遍歷指針

若p1==空格時,p2依次往前填充"02%";若p1!=空格,p2填充p1指向的字符;雙指針繼續往前遍歷.code

public class Solution { public String replaceSpace(StringBuffer str) { int p1=str.length()-1; for(int i=0;i<=p1;i++){ if(str.charAt(i)==' ') str.append("  "); } int p2=str.length()-1; while(p1>=0&&p2>p1){ char c=str.charAt(p1--); if(c==' '){ str.setCharAt(p2--,'0'); str.setCharAt(p2--,'2'); str.setCharAt(p2--,'%'); }else{ str.setCharAt(p2--,c); } } return str.toString(); } }
相關文章
相關標籤/搜索