
1 lhx2008 2018 年 3 月 23 日 via Android split 之后,递归到尾部,返回的时候拼接 |
3 cloverii 2018 年 3 月 23 日 via Android 我某次三面的时候被问过这题,所以这是个考栈的题么…我直接像 1L 那样说了 因为面试官说让我用 Python 写… |
4 lhx2008 2018 年 3 月 23 日 via Android split 之后,头尾之间交换也可以,扫 1.5 次,空间复杂度更优 |
5 gbin OP @cloverii 我倒觉得用递归比用栈好吧,二者空间复杂度都是 O(n),递归时间复杂度 O(n),栈 O(2n)。我看到给的提示说有更厉害的方法只需 O(1),只是没去查过,看看有没有大神提出来吧。 |
6 66450146 2018 年 3 月 23 日 via iPhone 整个字符串反转,再扫一遍每个词反转即可,空间 O1 |
7 zc666 2018 年 3 月 23 日 via iPad python 的话可以直接 split 之后数组下标从-1 开始然后下标每次递减 1,当出现 list index out of range 错误之后即是倒序遍历完了 |
8 iEverX 2018 年 3 月 23 日 via Android 通常还会加上原地的限制,用 split,面试官一般不会满意的。当然 python 就没办法了 |
11 hx1997 2018 年 3 月 23 日 via Android 分割之后倒着拼接,或者栈,只会这俩 |
13 zoffy 2018 年 3 月 23 日 js: "the sky is blue".split(' ').reverse().join(' ') |
15 tongz 2018 年 3 月 23 日 php: $str = "the sky is blue"; echo implode(' ', array_reverse(explode(' ', $str))); |
16 cloverii 2018 年 3 月 23 日 via Android @gbin 发现我把一楼看错了…并不知道怎么递归…重翻了一下面经,发现面试官这题问得很随意,于是我也很随意的说 split 一下再倒着输出,他没有进一步问了…(我一直觉得是因为我说用 py 写过点小爬虫,所以他问了我一个 sb 问题看我到底会不会写 py,现在突然觉得好像不是那么回事了…可能这就是我过了面试但是钱并不多的原因吧[手动狗头] |
17 zqqian 2018 年 3 月 23 日 via Android lz 可以出点不这么简单的题么。。。。。 |
18 domty 2018 年 3 月 23 日 变形的翻转字符串。 |
19 muziki 2018 年 3 月 23 日 fn main() { let s = "the sky is blue"; let rev_s = s.split_whitespace().rev().collect::<Vec<&str>>().join(" "); println!("{:?}", rev_s); } |
22 snw 2018 年 3 月 23 日 via Android 可以把题目改成字符串大于内存,但每个词小于内存 |
24 pagict 2018 年 3 月 23 日 ```python ' '.join(line.split()[::-1]) ``` |
25 rammiah 2018 年 3 月 23 日 #24 估计是最简单的了 |
26 WilliamLin 2018 年 3 月 23 日 via Android Python 的话就用 split 加 reverse 加 join |