小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
你能帮帮小Q吗?

你能帮帮小Q吗?
输入描述:
输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000
输出描述:
对于每组数据,输出移位后的字符串。
输入例子1:
AkleBiCeilD
输出例子1:
kleieilABCD
从字符串头开始遍历,找到大写字母后,将它放到字符串末尾,此时数组已经改变,那么不能让i继续加下去,要回退直至i加上大写字母的个数为字符串的长度才表示字符串已遍历完毕。
function move(str){
var len=str.length;
str=str.split("")
var s='';
var count=0;
var flag=false; //记录是否回退下面的i
for(var i=0;;i++){
// 如果测出是大写字母,将他们放到最后
if(str[i]>='A'&&str[i]<='Z'){
count++;
s=str.splice(i,1).toString();
str.splice(len-1,0,s);
flag=true;
}
console.log(str)
// 若相加等于中长度=表示已遍历完整个字符串,后面的大写相对位置已经是对的了
if((count+i)==len) break;
if(flag) i--;
flag=false;
}
str=str.join("");
return str;
}
console.log(move("AkleBiCeilD"))
