151. 反转字符串中的单词
LeetCode题目:https://leetcode.cn/problems/reverse-words-in-a-string/description/
class Solution {
public:
void reverse(string& s, int start, int end){ //翻转,区间写法:左闭右闭 []
for(;start < end; start++, end--){
swap(s[start], s[end]);
}
}
void removeExtraSpaces(string& s) {
// 去除所有空格并在相邻单词之间添加空格, 快慢指针。
// fast指针指向要寻找的元素,slow指向fast指针找到元素的位置。
int slow = 0;
for(int fast = 0; fast < s.length(); fast++){
// detect one word
if(s[fast]!= ' '){
// 对于非首单词,添加一个空格
if(slow != 0) s[slow++] = ' ';
// 先书写去掉所有的空格
while(s[fast] != ' ' && fast < s.length()){
s[slow++] = s[fast++];
}
}
}
s.resize(slow);
}
string reverseWords(string s) {
removeExtraSpaces(s);
reverse(s, 0, s.length()-1);
// 局部单词反转
for(int i = 0; i < s.length(); i++){
if(s[i] != ' '){
int count = i;
while(s[count] != ' ' && count != s.length()){
count++;
}
reverse(s, i, count-1);
i = count;
}
}
return s;
}
};
本文来自博客园,作者:CuriosityWang,转载请注明原文链接:https://www.cnblogs.com/curiositywang/p/17745845.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具