面试题5:替换空格
题目:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题思路:遍历替换的时间复杂度为$O(n^2)$,所以简单的遍历肯定是行不通的。在python的解法中有两种,一种是直接使用$replace()$但是要注意,这个不能直接修改原数组,所以要写另一个变量来引用。另一种解法是用正则表达式,我不是很熟悉,但是后者的运行时间比前者要来得短,本着越短越好的原则,我们用后一种方法。
1 | class Solution: |
算法思路:就两步,一个是compile,另一个是sub。暂时没理解是啥意思。
面试题6:从尾到头打印链表
题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
解题思路:可以额外使用一个栈来实现,先入后出。
1 | class Solution: |
算法思路:这里不用考虑额外情况,当空时,输出自然为空。所以直接先将链表装入链中,然后再把链pop出来,导入re_out中,返回即可。