网站做可以退款吗,如何建设红色旅游网站,济宁营销型网站建设,wordpress4.2.8 留言本题目 - 点击直达 1. 557 反转字符串中的单词 III 简单1. 题目详情1. 原题链接2. 题目要求3. 基础框架 2. 解题思路1. 思路分析2. 时间复杂度3. 代码实现 1. 557 反转字符串中的单词 III 简单
1. 题目详情
给定一个字符串 s #xff0c;你需要反转字符串中每个单词的字符顺序… 题目 - 点击直达 1. 557 反转字符串中的单词 III 简单1. 题目详情1. 原题链接2. 题目要求3. 基础框架 2. 解题思路1. 思路分析2. 时间复杂度3. 代码实现 1. 557 反转字符串中的单词 III 简单
1. 题目详情
给定一个字符串 s 你需要反转字符串中每个单词的字符顺序同时仍保留空格和单词的初始顺序。
1. 原题链接
Leetcode 557 反转字符串中的单词 III 简单
2. 题目要求 示例 1 输入s “Let’s take LeetCode contest” 输出“s’teL ekat edoCteeL tsetnoc” 示例 2: 输入 s “God Ding” 输出“doG gniD” 提示 1 s.length 5 * 104 s 包含可打印的 ASCII 字符。 s 不包含任何开头或结尾空格。 s 里 至少 有一个词。 s 中的所有单词都用一个空格隔开 3. 基础框架
● Cpp代码框架
class Solution {
public:string reverseWords(string s) {}
};2. 解题思路
1. 思路分析 ( 1 ) (1) (1) 每次只逆置单个单词 ( 2 ) (2) (2) start记录单词的起始下标pos记录查找的空格的坐标 ( 3 ) (3) (3) 每次查找空格都从start开始而不是从0下标开始 ( 4 ) (4) (4) 逆置[start, pos-1]内的单个单词的所有字符 ( 5 ) (5) (5) 更新start pos 1 ( 6 ) (6) (6) 最后一个单词末尾没有空格字符需要特殊处理最后一个单词
2. 时间复杂度 O ( N ) O(N) O(N) 每次查找到空格就逆置从开始到空格之间的所有字符共查找n次共逆置n/2次字符
3. 代码实现
class Solution {
public:string reverseWords(string s) {// 每次只逆置单个单词// start记录单词的起始下标pos记录查找的空格的坐标// 每次查找空格都从start开始而不是从0下标开始// 逆置[start, pos-1]内的单个单词的所有字符// 更新start pos 1// 最后一个单词末尾没有空格字符需要特殊处理最后一个单词size_t start 0;size_t pos s.find( );while(pos ! string::npos){reverse(s.begin() start, s.begin() pos);start pos 1;pos s.find( , start);}// reverse(s.begin() start, s.end());return s;}
};T h e The The E n d End End