iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++中如何使用LeetCode翻转字符串中的单词
  • 301
分享到

C++中如何使用LeetCode翻转字符串中的单词

2023-06-20 19:06:57 301人浏览 薄情痞子
摘要

这篇文章给大家介绍c++中如何使用LeetCode翻转字符串中的单词,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。[LeetCode] 186. Reverse Words in a String II 翻转字符串中的

这篇文章给大家介绍c++中如何使用LeetCode翻转字符串中的单词,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

[LeetCode] 186. Reverse Words in a String II 翻转字符串中的单词之二

Given an input string , reverse the string word by word. 

Example:

Input:  ["t","h","e"," ","s","k","y"," ","i","s"," ","b","l","u","e"]
Output: ["b","l","u","e"," ","i","s"," ","s","k","y"," ","t","h","e"]

Note: 

  • A word is defined as a sequence of non-space characters.

  • The input string does not contain leading or trailing spaces.

  • The words are always separated by a single space.

Follow up: Could you do it in-place without allocating extra space?

这道题让我们翻转一个字符串中的单词,跟之前那题 Reverse Words in a String 没有区别,由于之前那道题就是用 in-place 的方法做的,而这道题反而更简化了题目,因为不考虑首尾空格了和单词之间的多空格了,方法还是很简单,先把每个单词翻转一遍,再把整个字符串翻转一遍,或者也可以调换个顺序,先翻转整个字符串,再翻转每个单词,参见代码如下:

解法一:

class Solution {public:    void reverseWords(vector<char>& str) {        int left = 0, n = str.size();        for (int i = 0; i <= n; ++i) {            if (i == n || str[i] == ' ') {                reverse(str, left, i - 1);                left = i + 1;            }        }        reverse(str, 0, n - 1);    }    void reverse(vector<char>& str, int left, int right) {        while (left < right) {            char t = str[left];            str[left] = str[right];            str[right] = t;            ++left; --right;        }    }};

我们也可以使用 C++ STL 中自带的 reverse 函数来做,先把整个字符串翻转一下,然后再来扫描每个字符,用两个指针,一个指向开头,另一个开始遍历,遇到空格停止,这样两个指针之间就确定了一个单词的范围,直接调用 reverse 函数翻转,然后移动头指针到下一个位置,在用另一个指针继续扫描,重复上述步骤即可,参见代码如下:

解法二:

class Solution {public:    void reverseWords(vector<char>& str) {        reverse(str.begin(), str.end());        for (int i = 0, j = 0; i < str.size(); i = j + 1) {            for (j = i; j < str.size(); ++j) {                if (str[j] == ' ') break;            }            reverse(str.begin() + i, str.begin() + j);        }    }};

关于C++中如何使用LeetCode翻转字符串中的单词就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: C++中如何使用LeetCode翻转字符串中的单词

本文链接: https://www.lsjlt.com/news/299665.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++中如何使用LeetCode翻转字符串中的单词
    这篇文章给大家介绍C++中如何使用LeetCode翻转字符串中的单词,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。[LeetCode] 186. Reverse Words in a String II 翻转字符串中的...
    99+
    2023-06-20
  • C++实现LeetCode(151.翻转字符串中的单词)
    [LeetCode] 151.Reverse Words in a String 翻转字符串中的单词 Given an input string, reverse the strin...
    99+
    2024-04-02
  • C++中怎么利用LeetCode翻转字符串中的单词
    这篇文章将为大家详细讲解有关C++中怎么利用LeetCode翻转字符串中的单词,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。[LeetCode] 557.Reverse Words in a...
    99+
    2023-06-20
  • C++实现LeetCode(557.翻转字符串中的单词之三)
    [LeetCode] 557.Reverse Words in a String III 翻转字符串中的单词之三 Given a string, you need to revers...
    99+
    2024-04-02
  • C++实现LeetCode(186.翻转字符串中的单词之二)
    [LeetCode] 186. Reverse Words in a String II 翻转字符串中的单词之二 Given an input string , rever...
    99+
    2024-04-02
  • C语言如何实现翻转字符串中的单词
    目录C语言翻转字符串中的单词另外开辟一个空间,来存放翻转的字符串直接在原数组上进行操作C语言字符串各单词的反转思路代码实现代码编译调试输出C语言翻转字符串中的单词 另外开辟一个空间,...
    99+
    2024-04-02
  • 使用python3怎么翻转字符串中的单词点
    使用python3怎么翻转字符串中的单词点?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。给定一个字符串,逐个翻转字符串中的每个单词。说明:无空格字符构成一个 单...
    99+
    2023-06-14
  • php如何反转单词字符串
    本文小编为大家详细介绍“php如何反转单词字符串”,内容详细,步骤清晰,细节处理妥当,希望这篇“php如何反转单词字符串”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。php反转单词字符串的方法:1、新建一个php...
    99+
    2023-07-05
  • Python学习教程:给定一个字符串,逐个翻转字符串中的每个单词
    本期跟大家分享的Python学习教程是翻转字符串中的单词,有兴趣的伙伴,可以进来学习啦!...
    99+
    2023-06-02
  • 如何使用LeetCode反转字符串
    如何使用LeetCode反转字符串,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。题目描述编写一个函数,其作用是将输入的字符串反转过来。示例 1:输入: "hell...
    99+
    2023-06-19
  • python3翻转字符串里的单词点的实现方法
    给定一个字符串,逐个翻转字符串中的每个单词。 说明: 无空格字符构成一个 单词 。 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 如果两个单词间有多余的空格...
    99+
    2024-04-02
  • jQuery如何替换字符串中的单词
    这篇文章将为大家详细讲解有关jQuery如何替换字符串中的单词,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。替换字符串中的单词var el = $('#id'...
    99+
    2023-06-27
  • java如何统计字符串中的单词数
    这篇文章主要为大家展示了“java如何统计字符串中的单词数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java如何统计字符串中的单词数”这篇文章吧。如何统计字符串中的单词数这道题呢主要针对的是...
    99+
    2023-06-27
  • java怎么反转字符串中的每个单词
    你可以通过以下步骤来反转字符串中的每个单词:1. 将输入的字符串按空格分割为单词数组。2. 遍历单词数组,对每个单词进行反转。3. ...
    99+
    2023-10-18
    java
  • PHP如何返回有关字符串中使用的单词的信息
    这篇文章将为大家详细讲解有关PHP如何返回有关字符串中使用的单词的信息,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP 获取字符串中单词信息 PHP 提供了多种功能强大的函数来获取有关字符串中使用的单...
    99+
    2024-04-02
  • php如何将字符串按单词进行反转
    这篇文章主要介绍了php如何将字符串按单词进行反转,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。反转方法:1、使用“explode(' ',$str)”语句将...
    99+
    2023-06-25
  • 如何在Shell中统计字符串中单词的个数
    这篇文章给大家介绍如何在Shell中统计字符串中单词的个数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。方法一:[linux@host ~]# echo 'one two...
    99+
    2023-06-09
  • PHP如何将字符串中每个单词的首字母转换为大写
    这篇文章将为大家详细讲解有关PHP如何将字符串中每个单词的首字母转换为大写,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。将字符串中每个单词的首字母转换为大写 引言 在处理字符串时,有时需要将每个单词的首字...
    99+
    2024-04-02
  • 数数没有。 PL/SQL 中字符串中的字符和单词
    给定一个任意长度的字符串,任务是使用 PL/SQL 计算字符串中的字符和单词数。PL/SQL 是 SQL 与过程的组合。编程的特点 语言。它是由 Oracle 公司在 90 年代初开发的,旨在增强 SQL 的功能。 PL/SQL 是嵌入式系...
    99+
    2023-10-22
  • 如何使用JavaScript中的字符串转换数字
    这篇文章给大家介绍如何使用JavaScript中的字符串转换数字,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。js 字符串转换数字方法主要有三种: 转换函数、强制类型转换、利用js变量...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作