1. 程式人生 > >2018年百信銀行,線上筆試

2018年百信銀行,線上筆試

程式設計題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 -- 列表中要移除的物件。

返回值

該方法沒有返回值但是會移除列表中的某個值的第一個匹配項。