剑指Offer-面试题4:替换空格- 高飞网

面试题4:替换空格

2017-02-14 11:24:28.0

    请实现一个函数,把字符串的每个空格替换成"%20"。例如输入"We are happy",则输出“We%20are%20happy”。


public class Encoder{
    public static void main(String[] args){
        String str = "We are happy";    
        String str2 = encode(str);
        System.out.println(str+"-->"+str2);
    }   

    public static String encode(String str){
        if(str==null){
            return str;
        }   
        char cs[] = str.toCharArray();
        char cs2[] = new char[cs.length*3];
        int j=cs2.length-1;
        for(int i=cs.length-1;i>=0;i--){
            char c = cs[i];
            if(c==' '){
                cs2[j-2] = '%';
                cs2[j-1] = '2';
                cs2[j]='0';
                j-=3;
            }   
            else{
                cs2[j--]=cs[i];
            }   
        }   
        return new String(cs2,j,cs2.length-j);
    }   
}

    时间复杂度:O(n)。