28--仅仅反转字母
文章目录
- 1.问题描述
- 2.代码详情
1.问题描述
给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。
示例 1:
输入:“ab-cd”
输出:“dc-ba”
示例 2:
输入:“a-bC-dEf-ghIj”
输出:“j-Ih-gfE-dCba”
示例 3:
输入:“Test1ng-Leet=code-Q!”
输出:“Qedo1ct-eeLg=ntse-T!”
2.代码详情
方法 :字母栈
将 s 中的所有字母单独存入栈中,所以出栈等价于对字母反序操作。(或者,可以用数组存储字母并反序数组。)然后,遍历 s 的所有字符,如果是字母我们就选择栈顶元素输出。
复杂度分析
时间复杂度:O(N),其中 N 是 S 的长度。
空间复杂度:O(N)。
java:
class Solution {public String reverseOnlyLetters(String S) {Stack<Character> letters = new Stack();for (char c : S.toCharArray()){if (Character.isLetter(c)){letters.push(c);}}StringBuilder res = new StringBuilder();for (char c : S.toCharArray()){if (Character.isLetter(c)){res.append(letters.pop());}else{res.append(c);}}return res.toString();}
}
python:
class Solution:def reverseOnlyLetters(self, S: str) -> str:letters = [c for c in S if c.isalpha()]res = []for c in S:if c.isalpha():res.append(letters.pop())else:res.append(c)return "".join(res)
28--仅仅反转字母相关推荐
- 「 每日一练,快乐水题 」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 ...
- JavaScript——leetcode917. 仅仅反转字母
题目描述 给你一个字符串 s ,根据下述规则反转字符串: 所有非英文字母保留在原有位置. 所有英文字母(小写或大写)位置反转. 返回反转后的 s . 示例 1: 输入:s = "ab-cd& ...
- C语言--仅仅反转字母
仅仅反转字母 给定一个字符串 S,返回 "反转后的" 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转. 示例1: 输入:"ab-cd" 输出: ...
- 【必备算法】字符串(反转问题):LeetCode题 344. 反转字符串,541. 反转字符串 II,917. 仅仅反转字母
写在前面,反转数组的思路很简单,就是借助双指针不断将首尾相应位置的字符交换.Java模板如下: public void reverseArray(char[] arr) {int i = 0, j = ...
最新文章
- python3 域名转ip
- oracle查看表和索引碎片,Oracle 表空间索引存储与碎片检查
- 打包镜像并同时压缩多个镜像
- 有关;;;的基础小节
- influxdb mysql对比_InfluxDB和MySQL的读写对比测试
- 使用JUnit5对DynamoDB应用程序进行单元测试
- Bootstrap 模态对话框
- springMVC中获取request 对象
- 开源 免费 java CMS - FreeCMS1.5-数据对象-info
- Kd-tree的学习
- ASCLL码表完整版
- 怎么修改MAC电脑名字,三步教你修改MAC电脑的名字
- Anaconda安装 + Anaconda与Linux原有Python“和平共处”
- [lampp] 不能通过互联网连接数据库 MySQL is not accessable via network
- 广义势能函数和带电粒子在电磁场中的运动
- 邮件协议rfc822文档
- copy与deepcopy、赋值的区别
- python蚂蚁森林
- 番外3法鲁的新女友——《地与光》
- leetcode解题思路分析(一百零七)909 - 915 题
热门文章
- 解决ipfs 出现Error: can‘t publish while offline: pass `--allow-offline` to override的问题
- 酒店房间和 C++ 局部变量的作用域
- 不怕烧钱怕翻车:雷军与马化腾现场“过招”
- 解决:vue.esm.js?efeb:591 [Vue warn]: Do not use built-in or reserved HTML elements as component id: me
- 解决:SpringBoot 错误:Caused by: org.yaml.snakeyaml.scanner.ScannerException
- IntelliJ IDEA添加jar包
- Column count doesn't match value count at row 1 原因
- react native (一)
- iOS开发UI篇—模仿ipad版QQ空间登录界面
- Android NDK 使用第三方静态库(转)