AL2018屆校招筆試——天然語言處理

【單選40min+在線編程80min】正則表達式

單選編程

一、如下進程的哪些行爲不會致使操做系統向該進程發送一個信號?()服務器

A. 程序終止退出網絡

B. 訪問了一個非法的內存地址架構

C. 一個該程序正在監聽的socket 上來了一個新鏈接socket

D. 發生了除0錯誤函數

E.  a.b.c.d 都不會觸發信號性能

F.  a.b.c.d 都會觸發信號學習

 

二、已知f(x),g(x),都是凸函數(convex function)下面哪一個函數必定還是凸函數?()spa

A. f(x)*g(x)

B. f(x)/g(x)

C. f(g(x))

D. min{ f(x),g(x)}

E. max{ f(x),g(x)}

F. f(x)-g(x)

 

三、有關數據挖掘中聚類分析的描述,不正確的是()

A. K 均值和K 中心是經常使用的聚類方法

B. 聚類分析是一種無監督的學習

C. 聚類分析可用於異常值檢測

D. 聚類分析可用於數據降維

E. 基於密度的聚類方法能夠發現任意形狀的簇

F.  DBSCAN 是一種基於層次的聚類方法

 

LDG:F

四、在典型的CS服務架構中,假設咱們的客戶端和服務端都是單進程,同時客戶端向服務端創建了不少長鏈接。當這個服務端進程被 kill -9 命令誤殺以後,客戶端機器和服務器上的鏈接會呈現什麼樣的狀態:( )

A. 客戶端大量鏈接處於FIN_WAIT2 狀態,服務器大量鏈接處於CLOSING 狀態

B. 客戶端大量鏈接處於FIN_WAIT2 狀態,服務器大量鏈接處於CLOSING_WAIT狀態

C. 客戶端大量鏈接處於CLOSING狀態,服務器大量鏈接處於FIN_WAIT2狀態

D. 客戶端大量鏈接處於CLOSING_WAIT狀態,服務器大量鏈接處於FIN_WAIT2狀態

E. 客戶端大量鏈接處於CLOSING狀態,服務器大量鏈接處於CLOSING狀態

F. 客戶端和服務器都已經不能看到這些鏈接的狀態

 

 

五、下列關於Linux 中 kernel space 和user space 描述錯誤的是:()

A. user space 不能直接對文件進行寫操做

B. 程序代碼能手動指定在哪一個 space 中運行

C. user space 不能直接建立進程

D. user space和kernel space 的運行空間是相互隔離的

E. kernel space 能夠執行任意系統命令

F. user space 中運行出錯不會影響kernel space

 

LLT:E

 

六、小明主管帶領團隊同窗自駕出行,途中通過一座長爲200米的大橋,自駕車隊以4米/秒的速度緩慢經過,整個車隊經過大橋耗時115秒,已知每輛車長爲5米,兩車間隔爲10米,請問小明的自駕車隊有幾輛車?()

A. 19

B. 22

C. 14

D. 17

E. 18

F. 15

 

七、有一圓球從高度爲H 的地方自由落下,每次彈跳起的高度爲原高度的1/2,則從圓球開始落下到第10次着地時運動的距離爲:()

A. 767H/256

B. 1533H/512

C. 3069H/1024

D. 383H/128

E. 1023H/256

F. 以上均不正確

 

八、關於Android 系統中的ANR,如下說法中哪一個是錯誤的?()

A. ANR 是Android開發中常見問題,開發人員應該極力避免以提高用戶體驗

B. 應用ANR的是系統底層來監控的

C. Activity 和Service 均可能引起ANR

D. BroadcastReceiver 不接收用戶事件輸入,onReceive 中不會觸發 ANR

E. 應用開發時應避免在 UI線程作長時間的操做如網絡 IO 或大運算量計算以免ANR

F. 能夠把耗時任務放到AsyncTask 來避免 ANR

 

九、如有向無環圖G的有向邊集合爲 E={<1,3>, <3,2>,<1,4>,<3,6>,<4,6>,<3,6>,<6,5>},則如下屬於有向圖G的一種拓撲排序的是()

A. 1,2,3,4,5,6

B. 1,3,2,6,4,5

C. 1,4,6,3,2,5

D. 1,3,2,4,6,5

E. 1,3,2,5,4,6

F. 1,4,6,5,3,2

 

LLT:D

 

十、在電商搜索干預場景中,一條完整的干預規則包含兩個部分:干預條件和干預動做。干預條件是指預設若干條件集合,用於對來訪的流量中的檢索詞、訪問來源等特徵進行匹配,以肯定是否命中干預規則。設計一個系統具有:

1)對檢索詞的匹配,模糊匹配和精確匹配;

2)對數值條件的比較匹配(大於,小於,等於);

3)對某些字符串條件(非檢索詞)進行正則化匹配。

如下不正確的是:()

A. 正則表達式的匹配,實現上使用詞典查找樹,可提升性能;

B. 檢索詞模糊匹配,實現上使用詞典查找樹,可提升性能;

C. 精確匹配,將字符串轉映射成哈希值,再進行比較,可提升性能;

D. 檢索詞的模糊匹配,使用倒排索引,可提升性能;

E. 上述各類匹配方式中,正則表達式的性能最差;

F. 數值條件比較匹配,需對數值條件進行遍歷計算;

 

十一、閱讀如下代碼,計算程序運行結果是:

 

 

十二、天氣預報說明天降水機率是84%,假設降水和時間無關,請問明天中午12點以前就降水的機率是多大?()

A. 30%

B. 40%

C. 50%

D. 60%

E. 70%

F. 80%

 

1三、在一個公司,有10個團隊,每一個團隊有10個成員,同一個團隊中的每兩我的都是好友,同時每一個人都有3個其餘團隊的好友,假定這個公司的任意兩我的都有一條好友鏈路將他們聯繫起來,則這個鏈路最長有多長?()

A. 通過11次好友關係

B. 通過7次好友關係

C. 通過13次好友關係

D. 通過15次好友關係

E. 通過18次好友關係

F. 通過19次好友關係

 

1四、一個等差數列的第x,y,z三項的值分別是y,z,x,試求第x+y 項和第z+y項的差值()

A. -3

B. -2

C. -1

D. 0

E. 1

F. 2

 

1五、堆棧中有元素abcdef,每次出棧能夠選擇一個或者兩個元素棧,當有兩個元素出棧時能夠選擇其中一個從新入棧,則全部元素爲空,那麼可能的出棧方式有()種?

A. 23

B. 22

C. 21

D. 20

E. 19

F. 18

 

1六、閱讀代碼,計算結果:

 

1七、閱讀代碼,計算結果:

 

1八、閱讀代碼,計算結果:

 

20、如下函數的時間複雜度是()

void func(int x, int y, int z)
{ 
If(x<=0)
  printf(「%d,%d\n」,y,z);
else
{
 func(x-1,y+1,z);
func(x-1,y,z+1);
}
}

A. O(x*y*z)

B. O(x^2*y^2)

C. O(2^x)

D. O(2^x *2^y*2^z)

E. O(x !)

F. O((x*y*z)!)

 

問答題:

一、如今城市有N個路口,每一個路口有本身的編號,從0到N-1,每一個路口還有本身的交通控制信號,例如0,3 表示1號路口的交通訊號每3個時刻變化一次,即0到3時刻0號路口容許經過,3到6時刻不容許經過,而6到9時刻又容許經過;以此類推,全部路口的容許通行都從時刻0開始。同時城市中存在M條道路將這N個路口相鏈接起來,確保從一個路口到另外一個路口均可達,每條路由兩個端點加上通行所需的時間表示。如今給定起始路口和目的路口,從0時刻出發,請問最快能在什麼時刻到達?

(編程)

LDG: 第一題應該有圖或者例子吧?

 

二、菜鳥

LDG: 試一下直接用等差求和公式推n和Sn 而後推k在n-1或者n+1第幾個 對應加減就知道編號了?

HJ : 

#include <stdio.h>  
#include <math.h>  
#include <stdlib.h>  

int helper(int a){
    int gs = 0;
    int index = 1;
    while (a / index > 0){
        gs++;
        index *= 10;    
    }
    return gs;
}

int Get(int n){
    int x;
    int imk = 1;
    int tmp = 0;
    int diff = 0;
    while (true){
        int i;
        for (i=1; i<=imk; ++i){
            if (tmp + helper(i) == n){
                return (i %10);
            }
            if (tmp + helper(i) > n){
                break;
            }
            tmp += helper(i);
        }
        if (tmp + helper(i) > n){
            diff = i;
            break;
        }
        imk++;
    }
    int ds = n - tmp;
    int len = helper(diff);
    int res = len - ds;
    int res_index = pow(10, res);
    x = (diff / res_index) % 10;
    
    // do something
    return x;
}

int main()  
{  
    int n;
    scanf("%d",&n);
    int r = Get(n);
        
    printf("%d\n",r);  
}
相關文章
相關標籤/搜索