给定一个字符串 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("")};
【LeetCode|【JS】仅仅反转字母 #字符串】116 / 116 个通过测试用例
执行用时:68 ms
推荐阅读
- 操作系统|[译]从内部了解现代浏览器(1)
- web网页模板|如此优秀的JS轮播图,写完老师都沉默了
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- vue.js|vue中使用axios封装成request使用
- JavaScript|JavaScript: BOM对象 和 DOM 对象的增删改查
- JavaScript|JavaScript — 初识数组、数组字面量和方法、forEach、数组的遍历
- JavaScript|JavaScript — call()和apply()、Date对象、Math、包装类、字符串的方法
- JavaScript|JavaScript之DOM增删改查(重点)
- javascript|vue使用js-xlsx导出excel,可修改格子样式,例如背景颜色、字体大小、列宽等
- 数据结构与算法|【算法】力扣第 266场周赛