题解 | JZ73 翻转单词序列

这道题会用api会变得很简单,特别是对于python语言来说。

如果是C++的写法,推荐使用stringstream作为利器来分割空格。能大大帮助我们提高效率,不然我们需要手动写判断来进行空格前后的分割。并且,采用C++的写法需要使用到栈这样的数据结构,才能完成任务。

如果是python的写法,由于它自身对字符串的处理比较友好,可以做到一行代码就处理完。

1.str.split(' ')表示将字符串按照空格分割,返回一个list

2.list[::-1]表示将列表里的元素倒序。

3.(' ').join(list)表示将空格插入到list的相邻元素之间,组成一个str数据类型。

这三个方法,可以帮助我们快速地实现本题所需的功能。

class Solution {
public:
    string ReverseSentence(string str) { 
        stringstream ss(str);
        stack<string> sta;
        string ans;
        while(ss) {
            string tmp;
            ss >> tmp;
            sta.push(tmp);
        }
        
        while(!sta.empty()) {
            ans = ans + " " + sta.top();
            sta.pop();
        }
        
        while (ans[0] == ' ') ans.erase(ans.begin());
        return ans;
    }
};
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param str string字符串 
# @return string字符串
#
class Solution:
    def ReverseSentence(self , s: str) -> str:
        # write code here)
        return ' '.join(s.split(' ')[::-1])
全部评论

相关推荐

水墨不写bug:疑似没有上过大学
点赞 评论 收藏
分享
哥_留个offer先:跟他说,你这个最好用c#,微软就用c#Java不适合这个项目
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务