1. 程式人生 > >【JS】僅僅反轉字母 #字串

【JS】僅僅反轉字母 #字串

給定一個字串 S,返回 “反轉後的” 字串,其中不是字母的字元都保留在原地,而所有字母的位置發生反轉。

輸入: “a-bC-dEf-ghIj” 輸出: j-Ih-gfE-dCba

輸入: “z<*zj” 輸出: j<*zz

輸入: “Test1ng-Leet=code-Q!” 輸出: Qedo1ct-eeLg=ntse-T!



解法一:

建立一個新變數 str ,接收轉成陣列且顛倒的字串 S

刪除 str 中26個英文之外的字元,

檢測字串 S 再次把標點數字等字元寫入 str

教訓 -該用2個迴圈的時候還是用2個,一個迴圈容易出錯啊


var reverseOnlyLetters = function(S) {

    var str=S.split("").reverse() ,si,sx
    for(var i=str.length;i>=0;i--){
        si=str[i]
        if((si>='a' && si<='z') || (si>='A' && si<='Z')){
        }else{
            str.splice(i,1)
        }
    }

    for(var i=0;i<S.length;i++){
        sx=S[i]
        if((sx>='a' && sx<='z') || (sx>='A' && sx<='Z')){
        }else{
            str.splice(i,0,sx)
        }
    }
return str.join("")

};

116 / 116 個通過測試用例
執行用時:68 ms