广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++实现LeetCode(557.翻转字符串中的单词之三)
  • 483
分享到

C++实现LeetCode(557.翻转字符串中的单词之三)

2024-04-02 19:04:59 483人浏览 独家记忆
摘要

[LeetCode] 557.Reverse Words in a String III 翻转字符串中的单词之三 Given a string, you need to revers

[LeetCode] 557.Reverse Words in a String III 翻转字符串中的单词之三

Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.

Example 1:

Input: "Let's take LeetCode contest"
Output: "s'teL ekat edoCteeL tsetnoc"

Note: In the string, each word is separated by single space and there will not be any extra space in the string.

这道题让我们翻转字符串中的每个单词,感觉整体难度要比之前两道Reverse Words in a String II和Reverse Words in a String要小一些,由于题目中说明了没有多余空格,使得难度进一步的降低了。首先我们来看使用字符流处理类stringstream来做的方法,相当简单,就是按顺序读入每个单词进行翻转即可,参见代码如下:

解法一:


class Solution {
public:
    string reverseWords(string s) {
        string res = "", t = "";
        istringstream is(s);
        while (is >> t) {
            reverse(t.begin(), t.end());
            res += t + " ";
        }
        res.pop_back();
        return res;
    }
};

下面我们来看不使用字符流处理类,也不使用STL内置的reverse函数的方法,那么就是用两个指针,分别指向每个单词的开头和结尾位置,确定了单词的首尾位置后,再用两个指针对单词进行首尾交换即可,有点像验证回文字符串的方法,参见代码如下:

解法二:


class Solution {
public:
    string reverseWords(string s) {
        int start = 0, end = 0, n = s.size();
        while (start < n && end < n) {
            while (end < n && s[end] != ' ') ++end;
            for (int i = start, j = end - 1; i < j; ++i, --j) {
                swap(s[i], s[j]);
            }
            start = ++end;
        }
        return s;
    }
};

类似题目:

Reverse Words in a String II

Reverse Words in a String

参考资料:

https://discuss.leetcode.com/topic/85773/nothing-fancy-straight-java-stringbuilder

Https://discuss.leetcode.com/topic/85797/java-two-methods-3-line-using-built-in-and-char-array

到此这篇关于c++实现LeetCode(557.翻转字符串中的单词之三)的文章就介绍到这了,更多相关C++实现翻转字符串中的单词之三内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++实现LeetCode(557.翻转字符串中的单词之三)

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

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

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

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

下载Word文档
猜你喜欢
  • C++实现LeetCode(557.翻转字符串中的单词之三)
    [LeetCode] 557.Reverse Words in a String III 翻转字符串中的单词之三 Given a string, you need to revers...
    99+
    2022-11-12
  • C++实现LeetCode(186.翻转字符串中的单词之二)
    [LeetCode] 186. Reverse Words in a String II 翻转字符串中的单词之二 Given an input string , rever...
    99+
    2022-11-12
  • C++实现LeetCode(151.翻转字符串中的单词)
    [LeetCode] 151.Reverse Words in a String 翻转字符串中的单词 Given an input string, reverse the strin...
    99+
    2022-11-12
  • C++中怎么利用LeetCode翻转字符串中的单词
    这篇文章将为大家详细讲解有关C++中怎么利用LeetCode翻转字符串中的单词,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。[LeetCode] 557.Reverse Words in a...
    99+
    2023-06-20
  • C++中如何使用LeetCode翻转字符串中的单词
    这篇文章给大家介绍C++中如何使用LeetCode翻转字符串中的单词,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。[LeetCode] 186. Reverse Words in a String II 翻转字符串中的...
    99+
    2023-06-20
  • C语言如何实现翻转字符串中的单词
    目录C语言翻转字符串中的单词另外开辟一个空间,来存放翻转的字符串直接在原数组上进行操作C语言字符串各单词的反转思路代码实现代码编译调试输出C语言翻转字符串中的单词 另外开辟一个空间,...
    99+
    2022-11-13
  • python3翻转字符串里的单词点的实现方法
    给定一个字符串,逐个翻转字符串中的每个单词。 说明: 无空格字符构成一个 单词 。 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 如果两个单词间有多余的空格...
    99+
    2022-11-12
  • 使用python3怎么翻转字符串中的单词点
    使用python3怎么翻转字符串中的单词点?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。给定一个字符串,逐个翻转字符串中的每个单词。说明:无空格字符构成一个 单...
    99+
    2023-06-14
  • Python学习教程:给定一个字符串,逐个翻转字符串中的每个单词
    本期跟大家分享的Python学习教程是翻转字符串中的单词,有兴趣的伙伴,可以进来学习啦!...
    99+
    2023-06-02
  • C++实现LeetCode字型转换字符串的方法
    这篇文章主要介绍“C++实现LeetCode字型转换字符串的方法”,在日常操作中,相信很多人在C++实现LeetCode字型转换字符串的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++实现LeetCo...
    99+
    2023-06-20
  • 利用perl、python、php、shell、sed、awk、c 实现字符串的翻转
    原题: Q:有a.txt文件,里面内容如下 1234569 abcABCabc 要求使用awk打印出以下结果 987654321 cbaCBAcba A: shell :[root@vps tmp]# r...
    99+
    2022-06-04
    字符串 php python
  • C语言实现统计一行字符串的单词个数
    目录问题简述解题思路程序代码测试结果问题简述 输入一行字符,统计其中有多少个单词,单词之间用空格分开 输入样例: I want to be a postgraduate. 输出样例:...
    99+
    2022-11-13
  • 怎么利用python、php或c语言等实现字符串的翻转
    这篇文章主要讲解了“怎么利用python、php或c语言等实现字符串的翻转”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么利用python、php或c语言等实现字符串的翻转”吧!原题:Q:...
    99+
    2023-06-09
  • C++中怎么利用LeetCode实现最多有两个不同字符的最长子串
    本篇文章给大家分享的是有关C++中怎么利用LeetCode实现最多有两个不同字符的最长子串,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。[LeetCode] 159. Long...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作