leetcode-917-仅仅反转字母
题目描述:
给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。
示例 1:
输入:"ab-cd"
输出:"dc-ba"
示例 2:
输入:"a-bC-dEf-ghIj"
输出:"j-Ih-gfE-dCba"
示例 3:
输入:"Test1ng-Leet=code-Q!"
输出:"Qedo1ct-eeLg=ntse-T!"
提示:
S.length <= 10033 <= S[i].ASCIIcode <= 122S中不包含\or"
要完成的函数:
string reverseOnlyLetters(string S)
说明:
1、给定一个字符串S,里面存放着字母(有大写有小写),和一些非字母符号。
现在要求将字符串中的字母反转,而非字母字符则停留在原地不做任何改变。
比如a-bcd,反转完应该是d-cba。
最后返回反转后得到的字符串。
2、这道题比较容易,定义两个指针,一个从前开始,一个从后开始,当两个指针对应的都是字母时,交换他们。
接着前面的指针往后走,后面的指针往前走,不断交换,直到两个指针到达同一个位置。
代码如下:(附详解)
string reverseOnlyLetters(string S)
{
int i=0,s1=S.size(),j=s1-1;
while(i<j)//当i和j还没碰上时
{
if(isalpha(S[i]))//如果i对应的是字母
{
while(j>i)//当i和j还没碰上时
{
if(isalpha(S[j]))//如果j对应的也是字母
{
swap(S[i],S[j]);//i和j对应的这两个字母彼此交换
j--;//j到下一位
break;//跳出循环,不用找j对应的字母了
}
j--;//如果不是字母,那么不断地找下去
}
}
i++;//交换完之后,i往前走继续找下一个字母
}
return S;//最后返回“原地”交换完的字符串
}
上述代码实测0ms,beats 100.00% of cpp submissions。
leetcode-917-仅仅反转字母的更多相关文章
- LeetCode 917. Reverse Only Letters (仅仅反转字母)
题目标签:String 利用left, right 两个pointers, 从左右开始 互换 字母.如果遇到的不是字母,那么继续移动到下一个. Java Solution: Runtime beats ...
- [Swift]LeetCode917. 仅仅反转字母 | Reverse Only Letters
Given a string S, return the "reversed" string where all characters that are not a letter ...
- Leetcode917.Reverse Only Letters仅仅反转字母
给定一个字符串 S,返回 "反转后的" 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转. 示例 1: 输入:"ab-cd" 输出:" ...
- "abc123 ,def456",反转字母,其他位置不变
"abc123 ,def456",反转字母,其他位置不变. 无意间看到个有意思的面试题,忽然来了兴趣想着来做一下. 操作字符串用正则的效率比较高,但第一反应还是用原生来操作.下面说 ...
- 前端与算法 leetcode 7. 整数反转
目录 # 前端与算法 leetcode 7. 整数反转 题目描述 概要 提示 解析 解法 算法 传入测试用例的运行结果 执行结果 GitHub仓库 # 前端与算法 leetcode 7. 整数反转 题 ...
- 前端与算法 leetcode 242. 有效的字母异位词
目录 # 前端与算法 leetcode 242. 有效的字母异位词 题目描述 概要 提示 解析 解法一:哈希表 解法二:数组判断字符出现次数 解法三:转换字符串 算法 传入测试用例的运行结果 执行结果 ...
- LeetCode.917-只反转字母(Reverse Only Letters)
这是悦乐书的第353次更新,第378篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第215题(顺位题号是917).给定一个字符串S,返回"反向"字符串 ...
- leetCode题解之反转字符串中的元音字母
1.问题描述 Reverse Vowels of a String Write a function that takes a string as input and reverse only the ...
- [LeetCode] 917. Reverse Only Letters 只翻转字母
Given a string S, return the "reversed" string where all characters that are not a letter ...
- LeetCode 557:反转字符串中的单词 III Reverse Words in a String III
公众号:爱写bug(ID:icodebugs) 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. Given a string, you need to reve ...
随机推荐
- centos7 jenkins安装和使用
jenkins 安装和使用 1.先安装jdK1.8 和 maven 此步骤省略 2.进入jenkisn 官网 下载https://jenkins.io/download/ Long-term Supp ...
- 使用Jsoup获取网页内容超时设置
使用Jsoup获取网页内容超时设置 最近使用Jsoup来抓取网页,并对网页进行解析,发现很好用.在抓取过程中遇到一个问题,有些页面总是报Timeout异常,开始想是不是被抓取网站对IP进行了限制,后来 ...
- 2018.09.26洛谷P3957 跳房子(二分+单调队列优化dp)
传送门 表示去年考普及组的时候失了智,现在看来并不是很难啊. 直接二分答案然后单调队列优化dp检验就行了. 注意入队和出队的条件. 代码: #include<bits/stdc++.h> ...
- 2018.09.01 poj2689 Prime Distance(埃式筛法)
传送门 一道挺有趣的. 第一眼以为每个数都用miller_rabin判一次,但感觉会被卡时间啊. 继续分析发现可以晒出sqrt(r)中的所有素数,然后用类似埃式筛法的方法晒出[l,r]" r ...
- Django介绍(2)
https://www.cnblogs.com/yuanchenqi/articles/5658455.html
- arduino 与 android 通过TCP进行字节收发
arduino #include <avr/wdt.h> #include <SoftwareSerial.h> #define FPIN 13 SoftwareSerial ...
- 一组RS485设备操作命令
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ZNJM ...
- mysql报错排查总结
mysql报错: [root@zabbix ~]# mysql ERROR 2002 (HY000): Can't connect to local MySQL server through sock ...
- TabHost实现通话记录界面
//MainActivity.java public class MainActivity extends TabActivity { @Override public ...
- qt编程遇到的东西
setWindowFlags http://blog.chinaunix.net/uid-23500957-id-3876399.html move()方法,的作用是设置QWidget部件的pos坐标 ...