阿里巴巴 2018秋招研發工程師筆試題

2022-06-12 15:27:13 字數 1561 閱讀 8669

2. 菜鳥倉庫是乙個很大很神奇的地方,各種琳琅滿目的商品整整齊齊地擺放在一排排貨架上,通常一種品類(sku)的商品會放置在貨架的某乙個格仔中,格仔設有統一的編號,方便工人們揀選。 有一天沐哲去菜鳥倉庫參觀,無意中發現第1個貨架格仔編碼為1,第2-3個分別為1,2,第4-6個格仔分別是1,2,3,第7-10個格仔編號分別是1,2,3,4,每個格仔編號都是0-9中的乙個整數,且相鄰格仔的編號連在一起有如下規律 1|12|123|1234|...|123456789101112131415|...|123456789101112131415……n 這個倉庫存放的商品品類非常豐富,共有1千萬多個貨架格仔。沐哲很好奇,他想快速知道第k個格仔編號是多少?

問題的關鍵在於 123456789之後是1234567891還是12345678910;

solution 1

int get(int

n)

//確定了step,確定在某一段的第幾位

//step 為1:| 1 | 12 | 123 | 1234 |...

//step 為2:| 12345678910 | 1234567891011| ...

int m = startn;//

第一段的編號數

int prevm = 0

;

int ii = 1

;

while (n1 >m)

n1 -=prevm;

//從grid 編號段中(1234567891011...),要取出 第 n1 位的數(以1為索引開始)

step = 1

; cnt = 9

;

int candinum = 0

;

while (1

)

//再次確定step,從編碼段 以step位數遞增的某個數 的第 n1 位數

//如:|123.....100101102|

//101就是以step=3遞增的第2個數,

int a = n1 / step; //

第幾個數

int b = n1 % step; //

第幾位 candinum +=a;

if (b > 0

) candinum += 1

;

//stringstream s;

//string str;

//s << candinum;

//s >> str;

string str =to_string(candinum);

if (b == 0

) x = str[step - 1] - '0'

;

else

x = str[b - 1] - '0'

;

return

x;}

solution 2

int get1(int

n) x = data[n - 1] - '0'

;

return

x;}

2023年阿里巴巴校招研發工程師程式設計題

2 給定乙個query和乙個text,均由小寫字母組成。要求在text中找出以同樣的順序連續出現在query中的最長連續字母序列的長度。例如,query為 acbac text為 acaccbabb 那麼text中的 cba 為最長的連續出現在query中的字母序列,因此,返回結果應該為其長度3。請...

阿里巴巴2016研發工程師筆試題(四)

1.以下程式輸出結果是 class a virtual void func 本問題涉及到兩個方面 1.c 繼承體系中建構函式的呼叫順序。2.建構函式中呼叫虛函式問題。c 繼承體系中,初始化時建構函式的呼叫順序如下 1 任何虛擬基類的建構函式按照他們被繼承的順序構造 2 任何非虛擬基類的建構函式按照他...

阿里巴巴研發工程師C 實習面經

這是我寫的第一篇面經,也是第乙個面試,疫情期間直接 面試,面試的小哥也很溫柔,在這裡要說明一點 投完簡歷以後一定要一直開著手機鈴聲,千萬不要靜音,還好小哥後來又給我打了一次 接到了不然就錯過了。寫這篇的目的是為了以後方便自己複習,也供參考 首先介紹一下本人情況 研一在讀,985非top9,本校保研公...