前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【leetcode刷题】T71-翻转字符串里的单词

【leetcode刷题】T71-翻转字符串里的单词

作者头像
木又AI帮
修改2019-07-18 10:15:26
4030
修改2019-07-18 10:15:26
举报
文章被收录于专栏:木又AI帮木又AI帮

【题目】

给定一个字符串,逐个翻转字符串中的每个单词。

示例 1:

代码语言:javascript
复制
输入: "the sky is blue"
输出: "blue is sky the"

示例 2:

代码语言:javascript
复制
输入: "  hello world!  "
输出: "world! hello"
解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。

示例 3:

代码语言:javascript
复制
输入: "a good   example"
输出: "example good a"
解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

【思路】

最简单的想法:切割字符串,再倒序拼接在一起。注意:python的字符串split方法不用添加参数,默认按照(多个)空格、制表符、'\n'等切割字符串,本题若添加了参数' ',反而不能通过字符串中有连续空格这种情况。

本题经常出现在面试问题中,很多时候我们不能直接调用方法,还是得一行一行写代码。

【代码】

python版本

调用split方法

代码语言:javascript
复制
class Solution(object):
    def reverseWords(self, s):
        """
        :type s: str
        :rtype: str
        """
        ls = s.split()
        return ' '.join(ls[::-1])

直接实现

代码语言:javascript
复制
class Solution(object):
    def reverseWords(self, s):
        """
        :type s: str
        :rtype: str
        """
        res = ''
        tmp = ''
        for i in range(len(s)):
            # 找到非空格的位置
            if s[i] != ' ':
                tmp += s[i]
            else:
                # 找到空格的位置
                # 特殊情况!(首字符为空格,连续空格)
                if tmp != "":
                    if res == "":
                        res = tmp
                    else:
                        res = tmp + " " + res
                    tmp = ""
        # 最后一个单词
        if tmp != "":
            if res == "":
                res = tmp
            else:
                res = tmp + " " + res

        return res

C++版本

代码语言:javascript
复制
class Solution {
public:
    string reverseWords(string s) {
        string res="";
        string tmp="";
        for(int i=; i<s.size(); i++){
            // 找到非空格的位置
            if(s[i] != ' '){
                tmp += s[i];
            }else{
                // 找到空格的位置
                // 特殊情况!(首字符为空格,连续空格)
                if(tmp != ""){
                    if(res == "")
                        res = tmp;
                    else
                        res = tmp + " " + res;
                    tmp = "";
                }
            }
        }
        if(tmp != ""){
            if(res == "")
                res = tmp;
            else
                res = tmp + " " + res;
        }
        return res;
    }
};
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木又AI帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档