替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
代码:
def replaceSpace(self, s: str)->str:
res = []
for c in s:
if c == ' ': res.append("%20")
else: res.append(c)
return "".join(res)
时间复杂度O(n),因为用到额外列表,空间复杂度O(n)。
或者:
def replaceSpace(self, s: str)->str:
s = s.split(' ')
return '%20'.join(s)
从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例:
输入:head = [1,3,2]
输出:[2,3,1]
限制:
0 <= 链表长度 <= 10000
代码:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
def reversePrint(self, head: ListNode) -> List[int]:
stack = []
while head:
stack.append(head.val)
head = head.next
return stack [::-1]
利用列表模拟栈,将链表里的元素依次入栈,再依次尾部出栈就可以了。
本题要求用列表返回每一个值,用一个倒序的切片即可。
时间复杂度O(n),空间复杂度O(n)。