zoukankan      html  css  js  c++  java
  • 剑指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 }
  • 相关阅读:
    传感器仿真平台——数据生成模块(三)
    写一个ES6 的遍历目录函数
    编码风格
    关于DOM事件的一个例子
    WEB DB
    表格资料
    css3 鼠标移入移出效果
    css 3D
    正向代理和反向代理
    FileReader 对象
  • 原文地址:https://www.cnblogs.com/lkylin/p/13468649.html
Copyright © 2011-2022 走看看