【leetcode】917. Reverse Only Letters(双指针)
2024-09-30 10:56:44
Given a string s, reverse the string according to the following rules:
- All the characters that are not English letters remain in the same position.
- All the English letters (lowercase or uppercase) should be reversed.
class Solution {
public:
string reverseOnlyLetters(string s) {
//用栈或者双指针即可
//two-pointer
int n=s.size();
int left=0,right=n-1;
while(left<right)
{
//这样写是错误的:~((s[left]>='A'&&s[left]<='Z')||(s[left]>='a'&&s[left]<='z') 按位取反以及逻辑取非不一样
//写法和快排思路相似
while(left<right && !((s[left]>='A'&&s[left]<='Z')||(s[left]>='a'&&s[left]<='z')))
{
//cout<<~((s[left]>='A'&&s[left]<='Z')||(s[left]>='a'&&s[left]<='z'))<<endl;
left++;
}
cout<<left<<endl;
while(left<right && !((s[right]>='A'&&s[right]<='Z')||(s[right]>='a'&&s[right]<='z')))
{
right--;
}
//cout<<left<<"-"<<right<<endl;
if(left<right)
{
//cout<<left<<"-"<<right<<endl;
char tmp=s[left];
s[left]=s[right];
s[right]=tmp;
left++;
right--;
}
}
return s;
}
};
最新文章
- poj 1328 Radar Installation
- 开园第一篇 - 论移动开发环境 IOS与Android的差异
- 【视频教程】使用UIAutomation开发软件外挂
- Java中的匿名类
- 1、shell 简介
- Qt String 与char* char int之间的转换
- 应用层open(read、write、close)怎样调用驱动open(read、write、close)函数的?
- [Leetcode]-ReverseLinkedList
- Android 使用AsyncTask 下载图片的例子,学会使用AsyncTask
- IDEA配置Struts框架
- Redis基础一(Linux)
- hibernate核心类及常用方法
- 12生成器,send,推导式
- bind,apply,call,caller,callee还傻傻分不清楚?
- 【核心】project(idea文件)、module(iml文件)到SSM集成、热部署、Tomcat启动、MAVEN依赖冲突
- Django中的缓存基础知识
- 【转】ArcGIS10.0完全卸载全攻略
- 挂载文件系统出现";kernel panic..."; 史上最全解决方案
- 关于Test类中不能使用Autowired注入bean的问题
- npm使用过程中出现的错误