面試時的一道筆試題,內容如題,使用本身熟悉的語言便可。面試
博主在拿到筆試題的生活想到了好幾種實現方式,可是沒怎麼複習,有些實現方式的細節沒記清,最後使用了最繞的冒泡排序的方式完成的,因此寫這篇博客記錄一下,提醒本身。數組
定義一個數組:函數
a = [1, 2, 3, 4, 2, 1, 4, 1, 1]
from collections import Counter print(Counter(a))
首先轉換爲字典,轉換爲「元素-出現次數」對:spa
b = {}
for i in a: b[i] = a.count(i)
m = sorted(b.items(),key=lambda x:x[1],reverse=True)
print m
c = b.items() # b爲方法二中的字典,轉換爲列表 for j in range(len(b)): for i in range(len(b)-j-1): if c[i][1] < c[i+1][1]: c[i] ,c[i+1] = c[i+1],c[i] print c
定義一個數組3d
array=(1 2 4 3 5 3 5)
取出數組全部元素:code
而後將元素間空格轉換爲換行符:blog
而後先使用sort進行排序(uniq -c 只能對相鄰的數據進行統計):排序
再使用uniq進行統計:博客
最後對統計後的數據進行排序:it
echo ${array[*]}|tr " " "\n"|sort|uniq -c|sort -r #-r表示逆序
最終效果以下: