拼多多2021筆試真題集
小編:管理員 3074閱讀 2021.06.08
一、[編程題]多多的數字組合:
多多君最近在研究某種數字組合:
定義為:每個數字的十進制表示中(0~9),每個數位各不相同且各個數位之和等于N。滿足條件的數字可能很多,找到其中的最小值即可。
多多君還有很多研究課題,于是多多君找到了你--未來的計算機科學家尋求幫助。
輸入描述:
共一行,一個正整數N,如題意所示,表示組合中數字不同數位之和。 (1 <= N <= 1,000)
輸出描述:
共一行,一個整數,表示該組合中的最小值。 如果組合中沒有任何符合條件的數字,那么輸出-1即可。
輸入例子1:
5
輸出例子1:
5
例子說明1:
符合條件的數字有:5,14,23,32,41 其中最小值為5
輸入例子2:
12
輸出例子2:
39
例子說明2:
輸入例子3:
50
輸出例子3:
-1
例子說明3:
沒有符合條件的數字 (T▽T)
二、[編程題]多多的字符變換:
多多君最近在研究字符串之間的變換,可以對字符串進行若干次變換操作:
- 交換任意兩個相鄰的字符,代價為0。
- 將任意一個字符a修改成字符b,代價為 |a - b|(絕對值)。
現在有兩個長度相同的字符串X和Y,多多君想知道,如果要將X和Y變成兩個一樣的字符串,需要的最少的代價之和是多少。
輸入描述:
共三行,第一行,一個整數N,表示字符串的長度。 (1 <= N <= 2,000) 接下來兩行,每行分別是一個字符串,表示字符串X和Y。 (字符串中僅包含小寫字母)
輸出描述:
共一行,一個整數,表示將X和Y變換成一樣的字符串需要的最小的總代價。
輸入例子1:
4 abca abcd
輸出例子1:
3
例子說明1:
其中一種代價最小的變換方案: 都修改為abcd,那么將第一個字符串X最后一個字符a修改為d,代價為|a - d| = 3。
輸入例子2:
4 baaa aabb
輸出例子2:
1
例子說明2:
其中一種代價最小的變換方案: 首先將第一個字符串通過交換相鄰的字符:baaa -> abaa -> aaba,代價為0。 然后將第二個字符串修改最后一個字符b:|b - a| = 1。 兩個字符都修改為aaba,所以最小的總代價為1。
輸入例子3:
3 abc xyz
輸出例子3:
69
三、[編程題]多多的求和計算:
多多路上從左到右有N棵樹(編號1~N),其中第i個顆樹有和諧值Ai。
多多雞認為,如果一段連續的樹,它們的和諧值之和可以被M整除,那么這個區間整體看起來就是和諧的。現在多多雞想請你幫忙計算一下,滿足和諧條件的區間的數量。
輸入描述:
第一行,有2個整數N和M,表示樹的數量以及計算和諧值的參數。 ( 1 <= N <= 100,000, 1 <= M <= 100 ) 第二行,有N個整數Ai, 分別表示第i個顆樹的和諧值。 ( 0 <= Ai <= 1,000,000,000 )
輸出描述:
共1行,每行1個整數,表示滿足整體是和諧的區間的數量。
輸入例子1:
5 2 1 2 3 4 5
輸出例子1:
6
例子說明1:
長度為1: [2], [4] 長度為2: 無 長度為3: [1,2,3], [3,4,5] 長度為4: [1,2,3,4], [2,3,4,5] 長度為5: 無 共6個區間的和諧值之和可以被2整除。
四、[編程題]多多的骰子組合:
多多君拼團購買了N個骰子,為了方便后面進行活動,多多君需要將這些骰子進行分類。
兩個骰子為同類的定義是:
1
|
將其中一個骰子通過若干次上下、左右或前后翻轉后,其與另一個骰子對應的6面數字均相等。
|
輸入描述:
第一行1個整數N,表示骰子的數量。 (1 <= N <= 1,000) 接下來N行,每行6個數字(1~6,且各不相同) 其中第i行表示第i個骰子當前上、下、左、右、前、后這6面的數字。
輸出描述:
共2行: 第一行1個整數M,表示不同種類的骰子的個數 第二行M個整數,由大到小排序,表示每個種類的骰子的數量
輸入例子1:
2 1 2 3 4 5 6 1 2 6 5 3 4
輸出例子1:
1 2
例子說明1:
第二個骰子相當于是第一個骰子從左向右旋轉了一面得到,屬于同類。
輸入例子2:
3 1 2 3 4 5 6 1 2 6 5 3 4 1 2 3 4 6 5
輸出例子2:
2 2 1
例子說明2:
第三個骰子無法通過任何旋轉變換成第一個或第二個骰子。
輸入例子3:
10 2 5 1 3 4 6 5 4 3 2 1 6 1 4 6 2 3 5 1 5 6 3 4 2 6 4 2 1 5 3 3 6 4 5 2 1 1 6 3 4 2 5 5 1 4 2 6 3 6 2 3 1 5 4 5 3 6 1 4 2
輸出例子3:
9 2 1 1 1 1 1 1 1 1
例子說明3:
只有第4個骰子(1 5 6 3 4 2)與第8個骰子(5 1 4 2 6 3)屬于同一類。 一種可能的變換方式: 1) 首先從右向左翻轉1次 (1 5 6 3 4 2) -> (1 5 4 2 3 6) 2) 然后從上向下翻轉2次 (1 5 4 2 3 6) -> (6 3 4 2 1 5) -> (5 1 4 2 6 3)
相關推薦
- 阿爾卡特朗訊 2021 軟件工程師+測試工程師面試題 第1題:輸出結果4 #include void Example(char acHello ) { printf("%d",sizeof(acHello)); //printf("%d",strlen(acHello));//自己加的區別一下 } void main() { char acHello ="hello"; Example(acHello); return …
- iOS "鎖"的作用及使用方式 鎖是什么?為什么要有鎖?鎖的分類問題為什么 OSSpinLock 不安全?解決自旋鎖不安全問題有幾種方式為什么換用其它的鎖,可以解決 OSSpinLock 的問題?自旋鎖和互斥鎖的關系是平行對立的嗎?信號量和互斥量的關系信號量和條件變量的區別鎖是什么鎖 -- 是保證線程…
- 經典筆試題-JDBC及Hibernate篇 五、JDBC 及Hibernate:(共12 題:基礎10 道,中等難度2 道)110、數據庫,比如100 用戶同時來訪,要采取什么技術解決?【基礎】 答:可采用連接池。111、什么是ORM?【基礎】 答:對象關系映射(Object—Relational Mapping,簡稱ORM)是一種為了解決面向對象…