C++/python描述 AcWing 77. 翻转单词顺序
大家好,我叫亓官劼(qí guān jié ),在GitHub & CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在GitHub & CSDN中写博客,唯一博客更新的地址为:亓官劼的博客 ,近期将逐渐同步刷题相关记录到GitHub:Algorithmic-learning-records,大多是本人的刷题记录,如果转载请附上原文地址,谢谢。
由于学习工作的需要,算法刷题将会逐渐由C++向Python3过度,正在过度中,如实现的不太优美,请见谅。
本文原创为亓官劼,请大家支持原创,部分平台一直在恶意盗取博主的文章!!!
若需联系博主,可以联系本人微信:qiguanjie2015
输入一个英文句子,单词之间用一个空格隔开,且句首和句尾没有多余空格。
翻转句子中单词的顺序,但单词内字符的顺序不变。
为简单起见,标点符号和普通字母一样处理。
例如输入字符串"I am a student."
,则输出"student. a am I"
。
样例
输入:"I am a student."
输出:"student. a am I"
算法实现 C++
class Solution {
public:
string reverseWords(string s) {
string res = "";
for (int i = s.size() - 1; i >= 0; i--) {
string str;
while (s[i] != ' ' && i >= 0) str = s[i--] + str;
res = (i == -1 ? (res + str) : (res + str + ' '));
}
return res;
}
};
算法实现 python
class Solution(object):
def reverseWords(self, s):
return ' '.join(s.split()[::-1])