14個面試問題

2021-10-19 12:44:30 字數 2983 閱讀 3103

##搬磚俠###

1、檢查列表是否包含整數x

l = [3, 3, 4, 5, 2, 111, 5] 

print(111 in l) # true

2、在整數列表中查詢重複的數字

def find_duplicates(elements): 

duplicates, seen = set(), set()

for element in elements:

if element in seen:

duplicates.add(element)

seen.add(element)

return list(duplicates)

3、檢查兩個字串是否有相同字母

def is_anagram(s1, s2): 

return set(s1) == set(s2)

print(is_anagram("elvis", "lives")) # true

4、從列表中刪除重複項

lst = list(range(10)) + list(range(10))

print(lst)

lst = list(set(lst))

print(lst) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

5、在列表中查詢整數對,使它們的和等於整數x

def find_pairs(l, x):

pairs =

for (i, el_1) in enumerate(l):

for (j, el_2) in enumerate(l[i+1:]):

if el_1 + el_2 == x:

return pairs

6、檢查字串是否為回文

def is_palindrome(phrase): 

return phrase == phrase[::-1]

print(is_palindrome("anna")) # true

7、使用列表作為堆疊、陣列和佇列

# as a list ... 

l = [3, 4]

l += [5, 6] # l = [3, 4, 5, 6]

# ... as a stack ...

l.pop() # l = [4, 5, 6]

# ... and as a queue

l.insert(0, 5) # l = [5, 4, 5, 6]

l.pop() # l = [5, 4, 5]

8、獲取[1…100]中的缺失數字

def get_missing_number(lst): 

return set(range(lst[len(lst)-1])[1:]) - set(l)

l = list(range(1,100))

l.remove(50)

print(get_missing_number(l)) # 50

9、計算兩個列表的交集

def intersect(lst1, lst2): 

res, lst2_copy = , lst2[:]

for el in lst1:

if el in lst2_copy:

lst2_copy.remove(el)

return res

10、在未排序列表中查詢最大值和最小值

l = [4, 3, 6, 3, 4, 888, 1, -11, 22, 3] 

print(max(l)) # 888

print(min(l)) # -11

11、使用遞迴反轉字串

def reverse(string): 

if len(string)<=1:

return string return reverse(string[1:])+string[0]

print(reverse("hello")) # olleh

12、計算前n個斐波那契數

a, b = 0, 1 

n = 10

for i in range(n):

print(b)

a, b = b, a+b

# 1, 1, 2, 3, 5, 8, ...

13、使用快速排序演算法排序列表

def qsort(l): 

if l == : return

return qsort([x for x in l[1:] if x< l[0]]) + l[0:1] + qsort([x for x in l[1:] if x>=l[0]])

lst = [44, 33, 22, 5, 77, 55, 999]

print(qsort(lst))

# [5, 22, 33, 44, 55, 77, 999]

14、查詢字串的所有排列

def get_permutations(w): 

if len(w)<=1: return set(w)

smaller = get_permutations(w[1:])

perms = set()

for x in smaller:

for pos in range(0,len(x)+1):

perm = x[:pos] + w[0] + x[pos:]

perms.add(perm)

return perms

print(get_permutations("nan"))

#

10個面試問題

10個面試問題。如果是我的話,作為乙個程式設計師在面試的時候要是被問及這10個問題,我會覺得以後我肯定能在這家公司愉快工作。你最喜歡的程式語言是什麼?你討厭哪些程式語言?為什麼?如果讓你在自己最常用的程式語言上面新增功能,你希望是什麼功能?說乙個你曾經參與過的專案,在這過程中經歷了哪些困難,最後如何...

140個Google面試問題

某獵頭收集了140多個google的面試題,都張到他的blog中了,主要是下面這些職位的,因為被牆,且無任何敏感資訊,所以,我原文搬過來了。這篇blog例舉了google用來面試下面這幾個職位的面試題。很多不是很容易回答,不過都比較經典與 是google,microsoft,amazon之類的公司的...

140個Google面試問題

某獵頭收集了140多個google的面試題,都張到他的blog中了,主要是下面這些職位的,因為被牆,且無任何敏感資訊,所以,我原文搬過來了。這 篇blog例舉了google用來面試下面這幾個職位的面試題。很多不是很容易回答,不過都比較經典與 是 google,microsoft,amazon之類的公...