其他算法
概念理解
题目
002-替换空格
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy。则经过替换之后的字符串We%20Are%20Happy。
方法1: s.replace(' ','%20')
方法2: "%20".join(list(s.split(" ")))
方法3: ''.join(c if c!=' ' else '%20' for c in s)
013-调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
方法一:创建两个奇偶数列表,但数据大时耗内存(O(n))
class Solution:
def reOrderArray(self, array):
# write code here
odd,even = [],[]
for i in array: #注意!!!
if i&1 == 1:
odd.append(i)
else:
even.append(i)
return odd + even #odd.extend(even)无返回值
方法二:使用sorted函数
return sorted(array, key=lambda x:x&1==0)
方法三:正经排序,使用while,原地修改数组,将数组中偶数元素移动到数组末端
n = len(array)
i = 0
while n > 0:
if array[i]&1 == 0:
array.append(array.pop(i))
n -= 1
else:
n -= 1
i += 1
return array