今天接到了美團的筆試邀請,畢竟是人生中的第一次,感覺挺開心的,但是開心的同時伴隨而來的是擔心,沒什麼經驗,不知道筆試這一關能不能通過。程式設計提到還好,就是那些問答題我真的不知道該怎麼回答,感覺一臉懵。趁著這兩天時間,好好地補一下吧。不知道為什麼突然感覺自己好像什麼都不會。是不是自己把太多的精力放在了寫**上面?
2023年美團外賣火星第3000號配送站點有26名騎手,分別以大寫字母a-z命名,因此可以稱呼這些騎手為黃家騎士**a,黃家騎士**b…黃家騎士**z,某美團黑珍珠餐廳的外賣流水線上會順序產出一組包裹,美團配送排程引擎已經將包裹分配到騎手,並在包裹上貼上好騎手名稱,如rettebtae代表一組流水線包裹共9個,同時分配給了名字為a b e r t的5名騎手。請在不打亂流水線產出順序的情況下,把這組包裹劃分為盡可能多的片段,同乙個騎手只會出現在其中的乙個片段,返回乙個表示每個包裹片段的長度的列表。
輸入描述:
輸入資料只有一行,為乙個字串(不包含引號),長度不超過1000,只包含大寫字母'a'到'z',字元之間無空格。
輸出描述:
輸出每個分割成片段的包裹組的長度,每個長度之間通過空格隔開
輸入例子1:
mpmpcpmcmdefegdehinhklin
輸出例子1:
9 7 8
例子說明1:
劃分結果為mpmpcpmcm,defegde,hinhklin。
每個騎手最多出現在乙個片段中。
像mpmpcpmcmdefegde,hinhklin的劃分是錯誤的,因為劃分的片段數較少。
思路:先找包含全部第乙個字母子串,若子串中其他的字母也都包含在這個子串中,則這就是乙個滿足要求的最短片段,否則再向後遍歷使其滿足要求。
code:
#include#include#include
#include
#include
using namespace std;
intmain()
int start = 0, cur = 0, end;
vector
ans;
for (int i = 0; i < str.length(); ++i)
}if (!flag)
}mp[str[i]]--;
}ans.push_back(str.length()-start);
if (!ans.empty())
for (int i = 1; i < ans.size(); ++i)
cout
<< " "
}
美團2020後台校招題目 美團騎手包裹區間分組
2110年美團外賣火星第3000號配送站點有26名騎手,分別以大寫字母a z命名,因此可以稱呼這些騎手為黃家騎士 a,黃家騎士 b 黃家騎士 z,某美團黑珍珠餐廳的外賣流水線上會順序產出一組包裹,美團配送排程引擎已經將包裹分配到騎手,並在包裹上貼上好騎手名稱,如rettebtae代表一組流水線包裹共...
2018 3美團程式設計題
程式設計題1 給定乙個序列,輸出這個序列子串的和為k的倍數的子串的長度,如果有重複,輸出最大長度。例如 序列為 k 5 那麼子串的和為5的倍數的有,而這時長度最大的是5,所以輸出5。int count 0 for int i 0 i n i if count n i break cout count...
2017 美團程式設計題
程式設計題 大富翁遊戲 大富翁遊戲,玩家根據骰子的點數決定走的步數,即骰子點數為1時可以走一步,點數為2時可以走兩步,點數為n時可以走n步。求玩家走到第n步 n 骰子最大點數且是方法的唯一入參 時,總共有多少種投骰子的方法。輸入描述 輸入包括乙個整數n,1 n 6 輸出描述 輸出乙個整數,表示投骰子...