這是google里面的python入門教程坡氯,basic練習的list2.py。第一道題是查找一個list里面有沒有相鄰的重復元素洋腮,有的話就刪掉箫柳。
我的程序
def remove_adjacent(nums):
# +++your code here+++
i=0
numsSlim=[]
while i<len(nums):
if i+1<len(nums):
if nums[i]!=nums[i+1]:
numsSlim.append(nums[i])
else:
numsSlim.append(nums[i])
i+=1
return numsSlim
別人家的程序
def remove_adjacent(nums):
result = []
for num in nums:
if len(result) == 0 or num != result[-1]:
result.append(num)
return result
第二道題是給兩個已經(jīng)從小到大排好序的list,讓你把兩個list融合起來啥供,同時保證仍舊是從小到大排序悯恍。最好是對于兩個list都只讀取一次
我的程序
def linear_merge(list1, list2):
result=list1+list2
return sorted(result)
別人家的程序
def linear_merge(list1, list2):
result = []
# Look at the two lists so long as both are non-empty.
# Take whichever element [0] is smaller.
while len(list1) and len(list2):
if list1[0] < list2[0]:
result.append(list1.pop(0))
else:
result.append(list2.pop(0))
# Now tack on what's left
result.extend(list1)
result.extend(list2)
return result
嗯,我覺得自己的智商被碾壓了