题解 | 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])