1. 程式人生 > >網易遊戲數據挖掘分析筆試題

網易遊戲數據挖掘分析筆試題

語句 border and 代碼實現 http center 程序 金字塔 tar

一張數據表有三個字段,ID, gametime, coin,記錄用戶某次登錄的持續時長,以及在此次登錄中獲得的金幣總數,示例數據如下:

ID

Gametime

Coin

1

3600

10

2

2400

20

1

1800

30

3

60

20

1、用sql語句獲取每個用戶登錄持續時間最長的一次獲得的金幣量。

答:假設該表名為gametable,sql語句如下

select b.ID,a.Coin
from gametable a,
(select ID,max(Gametime) as Maxtime from gametable group by ID) b
where a.ID=b.ID and a.Gametime=b.Maxtime;

2、用任意語言編寫一個函數,輸入是一個整數,要求返回這個整數的逆序整數,例如輸入1234,輸出應該是4321

答:使用python代碼實現整數逆序

def inverse_num(one_num):    
    if one_num==0:
        return 0
    else:
        if one_num>0:
            flag=True
        else:
            flag=False 
            one_num*=-1
        one_num_list=list(str(one_num)) #將整數分解為字符列表
        while one_num_list[-1]==‘0‘:
            one_num_list.pop()
        tmp=‘‘.join(one_num_list[::-1]) #將字符列表逆序再組合為字符串
        if flag:
            return int(tmp) #將字符串轉換為整數
        else:
            return int(‘-‘+tmp) #同上

##測試用例
if __name__ == ‘__main__‘:
    one_num_list = [1234,-1234,1200,0]
    
    for one_num in one_num_list:
        print(one_num,inverse_num(one_num))

運行結果:

技術分享圖片

3、請使用python語言完成以下編程問題,程序接受一個整數n輸入,輸出為一個n層的金字塔圖形

如n=2時輸出

*

***

如n=3時輸出

*

***

*****

請使用最簡潔的python代碼完成


答:python代碼如下:

def prtstar(n):
    for i in range(1,n+1):
        print(‘ ‘*(n-i) + ‘*‘*(2*i-1))  

運行結果:
技術分享圖片

網易遊戲數據挖掘分析筆試題