反转一句话中单词的顺序(words order),例如 "a b c" → "c b a"。
In a given sentence or an array of characters, reverse the order of words.
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: medium
分类: Algorithms, Strings
标签: Reverse Words, In-place, String Manipulation
目标公司: Microsoft
参考答案摘要
答案 常见两种实现:①如果输入是字符串(高层语言),可以按空格 split 成数组,再双指针交换首尾单词,最后 join;时间 O(n),额外空间 O(n)。②如果输入是字符数组且要求原地(in-place),标准做法是先整体反转全部字符,再逐个把每个单词局部反转回来,这样能在 O(n) 时间、O(1) 额外空间完成。面试时要问清楚边界:多个空格、标点、前后空格、以及是否保留原有空白格式。
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。