【JS】僅僅反轉字母 #字串
阿新 • • 發佈:2018-11-30
給定一個字串 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