美文网首页
将字符数组中的全部空格都替换为%20

将字符数组中的全部空格都替换为%20

作者: 翁正存 | 来源:发表于2019-01-14 10:55 被阅读7次

例如,"we are happy"替换为"we%20are%20happy"。首先,从前往后遍历数组,每次遇到空格,将后边所有元素后移2位,这种算法是不实用的,因为如果存在n个空格,那算法复杂度就是O(n^2)。考虑从后往前遍历数组,就可以避免重复移动,将复杂度降低为O(n).

public class ReplaceAllWhiteSpace {

public  static char[]replaceAllWhiteSpace(char[] str) {

if(str ==null || str.length ==0){

return str;

        }

//遍历字符数组,计算有多少个空格whiteSpaceCount

        int whiteSpaceCount =0;

        for(int i =0; i < str.length; i++){

if(str[i] ==32){

whiteSpaceCount++;

            }

}

if(whiteSpaceCount ==0) {

return str;

        }

//新数组大小为oldSize + whiteSpaceCount * 2

        char[] newStr =new char[str.length + whiteSpaceCount *2];

        //将旧数组辅助到新数组中

        int p1 = str.length -1;

        int p2 = newStr.length -1;

        while (p1 >=0){

if(str[p1] !=32){

newStr[p2] = str[p1];

            }else{

newStr[p2] ='0';

                newStr[--p2] ='2';

                newStr[--p2] ='%';

            }

--p1;

            --p2;

        }

return newStr;

    }

public static void main(String[] args){

char[] arr = {'w','e', ' ', 'a', 'r', 'e', ' ','h','a','p','p','y'};

        char[] newArr =replaceAllWhiteSpace(arr);

        int begin =0;

        while(begin < newArr.length){

System.out.println(newArr[begin++]);

        }

}

}

相关文章

  • 将字符数组中的全部空格都替换为%20

    例如,"we are happy"替换为"we%20are%20happy"。首先,从前往后遍历数组,每次遇到空格...

  • 面试题 01.03. URL化

    题目描述: URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并...

  • 面试题 01.03. URL化

    题目:URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道...

  • 3_10空格替换练习题

    请编写一个方法,将字符串中的空格全部替换为“%20”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实...

  • leetcode-程序员面试金典刷题-URL化

    URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串...

  • URL化

    URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串...

  • LeetCode习题:URL化

    题目描述:编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串...

  • leetcode - 01(数组)

    1、URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字...

  • 2021-03-09算法打卡

    1、URL化URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并...

  • 剑指offer4J【C2 P5】字符串替换

    题目 将字符串空格替换为 %20 题解 easy 难度,纯数组实现如下: 源码: 剑指offer4J[https:...

网友评论

      本文标题:将字符数组中的全部空格都替换为%20

      本文链接:https://www.haomeiwen.com/subject/vblddqtx.html