给定一个字符串 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='a' && sx<='z') || (sx>='A' && sx<='Z')){
}else{
str.splice(i,0,sx)
}
}
return str.join("")
};
116 / 116 个通过测试用例
执行用时:68 ms