今天做了字節跳動的筆試題,總得來講題並不難,但是需要看懂題的意思,列出自己的思路再進行編程這樣效率才高,之前面試騰訊暑期實習生就是太緊張了,大腦一片空白,也不知道先寫寫自己的思路,然后再進行編程,結果給pass掉了,想來還是很可惜的。下面是字節跳動的筆試題:
要求:輸入數組長度,然后輸入數組中的各個元素,最后輸入整數K,要求找出數組中三個元素小於K的三個元素,例如:
輸入數組長度:6
輸入數組元素:-2、0、1、2、3、6
輸出三元組:共4個
下面給出思路和代碼:
""" 思路: 1、獲得用戶輸入的數組長度n,若n不為整數,則提示錯誤。 2、創建數組。 3、獲得用戶輸入的數組元素,如果元素個數超過數組長度n,則提示錯誤。 4、獲取用戶輸入的整數k,如果非整數,則提示錯誤。 5、可以使用for循環來依次遍歷,找到滿足條件的三元組並記錄下來。 6、輸出滿足條件的三元組的個數。 """ i = 0 j = 0 while True: # 1、獲得用戶輸入的數組長度n, 若n不為整數,則提示錯誤。 try: n = int(input("請輸入所需要創建的數組長度:")) except: print("請輸入整數!!!") continue # 2、創建數組。 arrs = [] # 3、獲得用戶輸入的數組元素,如果元素個數超過數組長度n,則提示錯誤。 while True: if i is not n: try: arr_data = int(input("請輸入數組元素:")) except: print("請輸入整數!!!") continue arrs.append(arr_data) i = i+1 else: break print(arrs) # 4、獲取用戶輸入的整數k,如果非整數,則提示錯誤。 while True: try: k = int(input("請輸入一個整數K:")) except: print("請輸入整數!!!") continue break # 5、可以使用for循環來依次遍歷,找到滿足條件的三元組並記錄下來。 while j < len(arrs): # print(arrs[j]) m = 0 if j+2+m >= len(arrs): break else: while (arrs[j] + arrs[j+1] + arrs[j+2+m] < k) & (j+1 < len(arrs)): three_tuple = list() three_tuple.append(arrs[j]) three_tuple.append(arrs[j+1]) three_tuple.append(arrs[j+2+m]) print(three_tuple) m = m + 1 j = j + 1
