(騰訊程式設計題)字元移位--js
阿新 • • 發佈:2019-01-22
小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"))