2018年百信銀行,線上筆試
阿新 • • 發佈:2019-02-06
程式設計題1:
不要用庫sort或者其他排序庫,對輸入的元素集合進行降序排序。
#!/bin/python # -*- coding: utf8 -*- import sys import os import re #請完成下面這個函式,實現題目要求的功能 #當然,你也可以不按照下面這個模板來作答,完全按照自己的想法來 ^-^ #******************************開始寫程式碼****************************** def sort(nums): ll=[] while len(nums)>0: mx=max(nums) nums.remove(mx) ll.append(mx) return ll #******************************結束寫程式碼****************************** _nums_cnt = 0 _nums_cnt = int(raw_input()) _nums_i=0 _nums = [] while _nums_i < _nums_cnt: _nums_item = int(raw_input()) _nums.append(_nums_item) _nums_i+=1 res = sort(_nums) for res_cur in res: print str(res_cur) + "\n"
執行結果為:AC
程式設計題2:
實現算24演算法:給定4個整數,數字範圍在1-9之間,任意使用 + - * / ( ) ,構造出一個表示式,使得最終結果為24,這就是常見的算24的遊戲。輸出結果,為布林值對應的整型數,比如True對應1,False對應0;
參考連結:
#!/bin/python # -*- coding: utf8 -*- import sys import os import re #請完成下面這個函式,實現題目要求的功能 #當然,你也可以不按照下面這個模板來作答,完全按照自己的想法來 ^-^ #******************************開始寫程式碼****************************** def get24(nums): list2 = [] list3 = [] symbols = ["+", "-", "*", "/"] try: for i in range(len(nums)): one = nums[i] list2 = nums[0:i] + nums[i + 1:] for j in range(3): two = list2[j] list3 = list2[0:j] + list2[j + 1:] for k in range(2): three = list3[k] four = (list3[0:k] + list3[k + 1:])[0] for s1 in symbols: for s2 in symbols: for s3 in symbols: express = "((one {0} two) {1} three) {2} four".format(s1, s2, s3) if eval(express) == 24: return True return False except Exception: return False #******************************結束寫程式碼****************************** _nums_cnt = 0 _nums_cnt = int(raw_input()) _nums_i=0 _nums = [] while _nums_i < _nums_cnt: _nums_item = int(raw_input()) _nums.append(_nums_item) _nums_i+=1 res=get24(_nums) print str(int(res)) + "\n"
執行結果是82%。。。。。。。
知識點:
(1)remove()
remove() 函式用於移除列表中某個值的第一個匹配項。
語法
remove()方法語法:
list.remove(obj)
引數
- obj -- 列表中要移除的物件。
返回值
該方法沒有返回值但是會移除列表中的某個值的第一個匹配項。