要求:时间复杂度为O(N),额外控件复杂度为O(1)
//字符串的调整与替换:把左区空格字符替换成"%20",右区全为空字符
public static void replace(char[] chas){
if(chas==null||chas.length==0){
return;
}
int len=0;
int num=0;
for(len=0;len<chas.length &&chas[len]!=0;len++){
//求出左区长度len
if(chas[len]==' '){
num++;//求出左区空格字符数num
}
}
int j=len+2*num-1;//替换后长度为len+2*num,j代表新串最后一个位置
for(int i=len-1;i>-1;i--){
//倒着遍历
if(chas[i]!=' '){
//当前字符不为空格
chas[j--]=chas[i];
}
else{
//找到空格,从后往前替换
chas[j--]='0';
chas[j--]='2';
chas[j--]='%';
}
}
}
//字符串的调整与替换:将字符数组中'*'字符移到左边,数字字符移到右边
public static void modify(char[] chas){
if(chas==null||chas.length==0){