去哪兒軟開(kāi)秋招筆試——算法真題
時(shí)間:2024.10
1、給定一個(gè)長(zhǎng)度為n且僅由小寫(xiě)字母構(gòu)成的字符串,字符串中的位置有兩種類型:固定位和流動(dòng)位
? 對(duì)于一個(gè)固定位,該位置上的字符不會(huì)在操作中發(fā)生變化。
? 對(duì)于一個(gè)流動(dòng)位上的字符,它可能會(huì)發(fā)生變化。
初始時(shí)所有位置都是流動(dòng)位。位置標(biāo)號(hào)從1開(kāi)始。現(xiàn)在有4次操作,每次操作有下列兩種可能:
? 操作一:將第i位設(shè)置為固定位(不保證之原來(lái)是流動(dòng)位)。
? 操作二:將所有流動(dòng)位的字符循環(huán)右移一格。不妨設(shè)流動(dòng)位的下標(biāo)為p1,p2, ..., pm,則該操作是將p1上的字符移動(dòng)到p2;p2上的字符移動(dòng)到p3;..;pm上的字符移動(dòng)到p1。
例如,若字符串為”abcdef”(其中第2,4位是固定位,使用下劃線表示),則一次操作二后變?yōu)椤眆badce”,再次進(jìn)行操作二后變?yōu)椤眅bfdac”
請(qǐng)輸出一系列探作后最終得到的字符串
輸入描述:第一行輸入兩個(gè)整致n,q代表字符串長(zhǎng)度和操作次數(shù)。第二行輸入一個(gè)長(zhǎng)度為n,且僅由小寫(xiě)字母構(gòu)成的字符串s代表初始字符串。此后q行,每行先輸入一個(gè)整數(shù)op代表操作次數(shù),如果op=1,則再同一行上輸入另一個(gè)整數(shù)u代表將第u位設(shè)為固定位;op=2表示一次移動(dòng)操作。保證流動(dòng)位至少存在一個(gè)
輸出描述:一個(gè)字符串表示經(jīng)過(guò)操作后最終字符串
2、小N是一名地鐵職工,上級(jí)給他安排了一個(gè)奇怪的任務(wù):從某個(gè)站出發(fā),坐滿k分鐘(k最大取到m,m給定)地鐵,然后回到出發(fā)站。
這個(gè)城市的地鐵系統(tǒng)也很神奇,一共有n 個(gè)車站,相鄰兩站之間的通勤總是耗時(shí) 1分鐘,為了方便我們也不予考慮換乘等消耗的時(shí)間。
一直坐地鐵也不是件輕松事,每坐一站路就會(huì)積累特定量的疲勞值。小N 聽(tīng)說(shuō)在去哪兒上搜索出行攻路會(huì)很方便,所以他經(jīng)過(guò)查閱,發(fā)現(xiàn)對(duì)于相鄰的a,b兩站,他從a坐到b或從b坐到a 都會(huì)積累f(a,b)的疲勞值。
現(xiàn)在小N想要知道,對(duì)于每一個(gè)出發(fā)站,從該站出發(fā)坐x分鐘(x取遍[1,m]中的整數(shù)),再回到出發(fā)站,積累的疲勞值最少可以為多少
輸入描述:第一行輸入兩個(gè)整數(shù)n和m,代表車站數(shù)量和最長(zhǎng)乘坐時(shí)間
隨后n行,第i行輸入n個(gè)整數(shù)ai,1 , ..., ai,n,其中ai,j=-1表示車站i與車站j不相鄰,否則其為f(i,j)
輸出描述:對(duì)于n行,每行輸出m 個(gè)整數(shù)。第i行的第j個(gè)數(shù)表示從i站出發(fā)坐j 分鐘坐地鐵再回到i站積累的疲勞值的最小值。如果從i站坐j分鐘無(wú)法回到i站,則輸出-1
示例:
5 3
-1 5 1 3 4
5 -1 4 4 3
1 4 -1 5 1
3 4 5 -1 5
4 3 1 5 -1
輸出:
-1 2 6
-1 6 8
-1 2 6
-1 6 9
-1 2 6
1、給定一個(gè)長(zhǎng)度為n且僅由小寫(xiě)字母構(gòu)成的字符串,字符串中的位置有兩種類型:固定位和流動(dòng)位
? 對(duì)于一個(gè)固定位,該位置上的字符不會(huì)在操作中發(fā)生變化。
? 對(duì)于一個(gè)流動(dòng)位上的字符,它可能會(huì)發(fā)生變化。
初始時(shí)所有位置都是流動(dòng)位。位置標(biāo)號(hào)從1開(kāi)始。現(xiàn)在有4次操作,每次操作有下列兩種可能:
? 操作一:將第i位設(shè)置為固定位(不保證之原來(lái)是流動(dòng)位)。
? 操作二:將所有流動(dòng)位的字符循環(huán)右移一格。不妨設(shè)流動(dòng)位的下標(biāo)為p1,p2, ..., pm,則該操作是將p1上的字符移動(dòng)到p2;p2上的字符移動(dòng)到p3;..;pm上的字符移動(dòng)到p1。
例如,若字符串為”abcdef”(其中第2,4位是固定位,使用下劃線表示),則一次操作二后變?yōu)椤眆badce”,再次進(jìn)行操作二后變?yōu)椤眅bfdac”
請(qǐng)輸出一系列探作后最終得到的字符串
輸入描述:第一行輸入兩個(gè)整致n,q代表字符串長(zhǎng)度和操作次數(shù)。第二行輸入一個(gè)長(zhǎng)度為n,且僅由小寫(xiě)字母構(gòu)成的字符串s代表初始字符串。此后q行,每行先輸入一個(gè)整數(shù)op代表操作次數(shù),如果op=1,則再同一行上輸入另一個(gè)整數(shù)u代表將第u位設(shè)為固定位;op=2表示一次移動(dòng)操作。保證流動(dòng)位至少存在一個(gè)
輸出描述:一個(gè)字符串表示經(jīng)過(guò)操作后最終字符串
2、小N是一名地鐵職工,上級(jí)給他安排了一個(gè)奇怪的任務(wù):從某個(gè)站出發(fā),坐滿k分鐘(k最大取到m,m給定)地鐵,然后回到出發(fā)站。
這個(gè)城市的地鐵系統(tǒng)也很神奇,一共有n 個(gè)車站,相鄰兩站之間的通勤總是耗時(shí) 1分鐘,為了方便我們也不予考慮換乘等消耗的時(shí)間。
一直坐地鐵也不是件輕松事,每坐一站路就會(huì)積累特定量的疲勞值。小N 聽(tīng)說(shuō)在去哪兒上搜索出行攻路會(huì)很方便,所以他經(jīng)過(guò)查閱,發(fā)現(xiàn)對(duì)于相鄰的a,b兩站,他從a坐到b或從b坐到a 都會(huì)積累f(a,b)的疲勞值。
現(xiàn)在小N想要知道,對(duì)于每一個(gè)出發(fā)站,從該站出發(fā)坐x分鐘(x取遍[1,m]中的整數(shù)),再回到出發(fā)站,積累的疲勞值最少可以為多少
輸入描述:第一行輸入兩個(gè)整數(shù)n和m,代表車站數(shù)量和最長(zhǎng)乘坐時(shí)間
隨后n行,第i行輸入n個(gè)整數(shù)ai,1 , ..., ai,n,其中ai,j=-1表示車站i與車站j不相鄰,否則其為f(i,j)
輸出描述:對(duì)于n行,每行輸出m 個(gè)整數(shù)。第i行的第j個(gè)數(shù)表示從i站出發(fā)坐j 分鐘坐地鐵再回到i站積累的疲勞值的最小值。如果從i站坐j分鐘無(wú)法回到i站,則輸出-1
示例:
5 3
-1 5 1 3 4
5 -1 4 4 3
1 4 -1 5 1
3 4 5 -1 5
4 3 1 5 -1
輸出:
-1 2 6
-1 6 8
-1 2 6
-1 6 9
-1 2 6
全部評(píng)論
相關(guān)推薦
點(diǎn)贊 評(píng)論 收藏
分享
點(diǎn)贊 評(píng)論 收藏
分享
點(diǎn)贊 評(píng)論 收藏
分享