面试题5: 替换空格

2018-03-19  本文已影响8人  夹小欣

思路:对于C++要从后向前替换,java好像 从前向后从后向前都一样

    public String replaceSpace(StringBuffer str) {
        int n = str.length();
        String res = "";
        for(int i=n-1;i>=0;i--){
            if(str.charAt(i)==' ')
            {
                res="%20"+res;
            }
            else
                res = String.valueOf(str.charAt(i))+res;
        }
        return res;
    }

相关题目:
合并两个有序数组,已知A1有足够大空间容纳A2
思路:从后向前合并,减少移动次数

public static void mergeArray(int[] a1,int[] a2,int m,int n){
        int i=m-1,j=n-1,k=a1.length-1;
        for(;j>=0&&i>=0;){
            if(a1[i]>a2[j]) {a1[k--]=a1[i];i--;
            }
            else a1[k--] = a2[j--];
        }
        while(j>0&&i<0)
            a1[k--] = a2[j--];
        while(i>0&&j<0)
            a1[k--]=a1[i--];
        for(int i1=0;i1<a1.length;i1++) 
            System.out.println(a1[i1]);
    }
上一篇下一篇

猜你喜欢

热点阅读