面试题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]);
}