lintcode-212. 空格替换 java

题目描述:

设计一种方法,将一个字符串中的所有空格替换成 %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) {
        
        int add = 0;
        
        for(int i=0; i<length; i++){
            if (string[i]==' '){
                add++;
                
            }
        }
        
        int newlen = length + add*2;
        
        int j=1;
        
        for(int i = length-1; i>=0; i--){
            //System.out.println(i);
            if (string[i]!=' '){
                string[newlen-j] = string[i];
                j++;
            }
            else{
                string[newlen-j]='0';
                j++;
                string[newlen-j]='2';
                j++;
                string[newlen-j]='%';
                j++;
            }
            
        }
        return newlen;
    }
}

备注:一定从后向前替换,因为后面是空的

posted @ 2018-02-05 14:43  果断的荔枝  阅读(122)  评论(0编辑  收藏  举报