空格替换

题目描述

设计一种方法,将一个字符串中的所有空格替换成 %20 。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。
样例
对于字符串”Mr John Smith”, 长度为 13
替换空格之后的结果为”Mr%20John%20Smith”

题目解答

解题思路

先遍历一遍数组统计空格 个数,然后计算出新的数组长度,接着从后面开始遍历

  • 如果是空格, 就用%20替换
  • 如果不是空格,就直接放到后面

代码实现

public class Solution {
    /** * @param string: An array of Char * @param length: The true length of the string * @return: The true length of new string */
    public int replaceBlank(char[] string, int length) {
        // Write your code here
        if(string == null || length == 0)
            return 0;
        int blankCount = 0;
        for(int i = 0; i < length; i++){
            if(string[i] == ' ')
                blankCount++;
        }
        int newLength =  length + blankCount*2;
        int j = 0;
        for(int i = length-1; i >= 0; i--){
            if(string[i] != ' '){
                j++;
                string[newLength-j] = string[i];
            }else {
                j++;
                string[newLength-j] = '0';
                j++;
                string[newLength-j] = '2';
                j++;
                string[newLength-j] = '%';
            }
        }
        return j;
    }
}

你可能感兴趣的:(空格)