JavaScript——leetcode917. 仅仅反转字母
题目描述
给你一个字符串 s ,根据下述规则反转字符串:
所有非英文字母保留在原有位置。
所有英文字母(小写或大写)位置反转。
返回反转后的 s 。
示例 1:
输入:s = “ab-cd”
输出:“dc-ba”
示例 2:
输入:s = “a-bC-dEf-ghIj”
输出:“j-Ih-gfE-dCba”
示例 3:
输入:s = “Test1ng-Leet=code-Q!”
输出:“Qedo1ct-eeLg=ntse-T!”
代码片
/** @lc app=leetcode.cn id=917 lang=javascript** [917] 仅仅反转字母*/// @lc code=start
/*** @param {string} s* @return {string}*/
//方法一:栈
var reverseOnlyLetters = function(s) {let stack = [];let i = 0;//只要遇到字母就把它存入栈中while(i < s.length) {let cur = s.charCodeAt(i);while((cur >= 97 && cur <= 122) || (cur >= 65 && cur <= 90)) {stack.push(s[i]);i++;cur = s.charCodeAt(i);}i++;}let res = "";i = 0;//下次遍历的时候 只要是字母 就从栈中弹出 即可一一对应while (i < s.length) {let cur = s.charCodeAt(i);while((cur >= 97 && cur <= 122) || (cur >= 65 && cur <= 90)) {res += stack.pop();i++;cur = s.charCodeAt(i);}res += s[i] || "";i++;}return res;
};
// @lc code=end/*** @param {string} s* @return {string}*/var reverseOnlyLetters = function (s) {let left = 0,right = s.length - 1;let stack = s.split("");while (left <= right) {let leftChar = s.charCodeAt(left),isLeftChar =(leftChar >= 97 && leftChar <= 122) ||(leftChar >= 65 && leftChar <= 90);let rightChart = s.charCodeAt(right),isRightChar =(rightChart >= 97 && rightChart <= 122) ||(rightChart >= 65 && rightChart <= 90);// 当左右指针指向都指向的是字母的情况下 就互相交换if (isLeftChar && isRightChar) {[stack[left], stack[right]] = [stack[right], stack[left]];left++;right--;}// 左指针指向的不是字母,向右移动1位if (!isLeftChar) left++;// 右指针指向的不是字母,向左移动1位if (!isRightChar) right--;}return stack.join("");};
JavaScript——leetcode917. 仅仅反转字母相关推荐
- leetcode 算法题849 (简单240) 仅仅反转字母
leetcode 算法题849 (简单240) 仅仅反转字母 题目介绍 给定一个字符串 S, 返回 "反转后的" 字符串, 其中不是字母的字符都保留在原地, 而所有字母的位置发生反 ...
- 「 每日一练,快乐水题 」917. 仅仅反转字母
✅力扣原题: 力扣链接:917. 仅仅反转字母 ✅题目简述: 给你一个字符串 s ,根据下述规则反转字符串: 所有非英文字母保留在原有位置. 所有英文字母(小写或大写)位置反转. 返回反转后的 s . ...
- LeetCode:917. 仅仅反转字母
917. 仅仅反转字母 题目: 解题思路: 源码: 踩坑点: 题目: 解题思路: 设俩个指针,一个位于字符串第一个字符,一个位于最后一个字符,当都为字符时交换:不都为字符时直接跳过. 源码: char ...
- Leetcode:125.验证回文串,917仅仅反转字母,387字符串的第一个唯一字符
文章目录 125.验证回文串 题目描述 示例 思路分析 代码实现 917.仅仅反转字母 题目描述 示例 思路分析 代码实现 387.字符串的第一个唯一字符 题目描述 示例 思路分析 代码实现: 125 ...
- Leetcode刷题 ——— (1)仅仅反转字母
仅仅反转字母
- 力扣之917. 仅仅反转字母
文章目录 917. 仅仅反转字母 1.题目 2.参考答案 3.知识点 ①str.isalpha() 917. 仅仅反转字母 1.题目 给你一个字符串 s ,根据下述规则反转字符串: 1.所有非英文字母 ...
- 【LeetCode】917. 仅仅反转字母
题目 917. 仅仅反转字母 给你一个字符串 s ,根据下述规则反转字符串: 所有非英文字母保留在原有位置. 所有英文字母(小写或大写)位置反转. 返回反转后的 s . 示例 1: 输入:s = &q ...
- LeetCode:917. 仅仅反转字母————简单
题目 917. 仅仅反转字母 给你一个字符串 s ,根据下述规则反转字符串: 所有非英文字母保留在原有位置. 所有英文字母(小写或大写)位置反转. 返回反转后的 s . 示例 1: 输入:s = &q ...
- C语言--仅仅反转字母
仅仅反转字母 给定一个字符串 S,返回 "反转后的" 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转. 示例1: 输入:"ab-cd" 输出: ...
最新文章
- 鼠标同步桌面_[问题处理]XenCenter控制台操作通过MCS发布的虚拟机鼠标不同步
- 共享单车变身“行走的弹幕”,清华大学等17所高校均有投放
- 一个网站哪些页面需要用到redis_网页和网站有什么区别?做一个网站难不难?都需要哪些技能?...
- BlockingQueue原理分析(ReentrantLock、Condition的实践)
- 缠论108课_缠论108课学习顺序
- 基于opencv的数字识别
- 推断性统计部分(一)---样本与分布的关系及其检验统计量
- js数组常用方法复习
- APISpace 绕口令API
- 京东到家搜索系统架构演进
- java单线程刷功德程序
- Vue 的身份证 手机号码 电话号码 邮箱等校验
- Fast Global Registration(快速全局配准)
- PHP语法糖->,::和=>
- Python+Yolov5反光衣黄色马甲特征识别监测快速锁定目标人物体
- 道闸系统服务器功能,道闸系统_停车场自动道闸系统 - 九鼎智能
- 如何自己编译wireless tool
- 服务器设置好后怎么显示,如何查看服务器已配置环境
- 【Ubuntu】Ubuntu 16.04 安装后优化
- win7咱么锁定计算机,怎么锁定计算机?Win7锁定电脑屏幕的步骤
热门文章
- 15、【华为HCIE-Storage】--多路径技术
- windows下使用GRUB2 制作支持BIOS和UEFI的WINPE、LINUX、MAXDOS多引导U盘
- NLP实战一 利用OpenAI Codex实现中文转python代码
- 老毛桃装机版制作启动U盘图文教程
- 年薪30万、50万、100万的管理者,有啥分别?
- 壹佰利—通联信用作为吉林省首家获得人民银行颁发的企业征信备案牌照,开始为全省人民服务!
- 互联网查询信用报告,为什么提示“无法进行注册”?
- linux zip unzip指令使用方法
- vue执行配置选项npm run serve的本质
- TCP/IP相关的那些事儿