題目1029 魔咒詞典(map)

2021-07-30 03:01:19 字數 2156 閱讀 4144

題目1029:魔咒詞典

時間限制:5 秒

記憶體限制:32 兆

特殊判題:否

提交:5483

解決:1584

題目描述:哈利波特在魔法學校的必修課之一就是學習魔咒。據說魔法世界有100000種不同的魔咒,哈利很難全部記住,但是為了對抗強敵,他必須在危急時刻能夠呼叫任何乙個需要的魔咒,所以他需要你的幫助。

給你一部魔咒詞典。當哈利聽到乙個魔咒時,你的程式必須告訴他那個魔咒的功能;當哈利需要某個功能但不知道該用什麼魔咒時,你的程式要替他找到相應的魔咒。如果他要的魔咒不在詞典中,就輸出「what?」

輸入:首先列出詞典中不超過100000條不同的魔咒詞條,每條格式為:

[魔咒] 對應功能

其中「魔咒」和「對應功能」分別為長度不超過20和80的字串,字串中保證不包含字元「[」和「]」,且「]」和後面的字串之間有且僅有乙個空格。詞典最後一行以「@end@」結束,這一行不屬於詞典中的詞條。

詞典之後的一行包含正整數n(<=1000),隨後是n個測試用例。每個測試用例佔一行,或者給出「[魔咒]」,或者給出「對應功能」。

輸出:每個測試用例的輸出佔一行,輸出魔咒對應的功能,或者功能對應的魔咒。如果魔咒不在詞典中,就輸出「what?」

樣例輸入:

[expelliarmus] the disarming charm

[rictusempra] send a jet of silver light to hit the enemy

[tarantallegra] control the movement of one's legs

[serpensortia] shoot a snake out of the end of one's wand

[lumos] light the wand

[obliviate] the memory charm

[expecto patronum] send a patronus to the dementors

[accio] the summoning charm

@end@

4[lumos]

the summoning charm

[arha]

take me to the sky

樣例輸出:

light the wand

accio

what?

what?

2023年浙江大學計算機及軟體工程研究生機試真題

答疑:

思路:我的思路就是建立有二個字串的結構體陣列,分別存放的是對[魔咒]進行按字母排序,和對對應功能進行按字母排序,然後對要查詢的字串首字母進行判斷,如果是小於m(也即是第13個字母),則從前向後搜尋,否則從後向前搜尋。

#include#include#include#includeusing namespace std;

struct node

node[100001],node_temp[100001];

bool cmp(const node &a,const node &b)//對[魔咒]進行按字母排序

bool cmp1(const node &a,const node &b)//對對應功能進行按字母排序

int main()

} //魔咒

string s1 = str.substr(0,i+1);

//對應功能

string s2 = str.substr(i+2,len-i-2);

//儲存在map中

map[s1] = s2;

map[s2] = s1;

return 0;

}

int main()

//分割魔咒及其對應功能

function(str);

} scanf("%d\n",&n);

for(i = 0;i < n;i++)

else

{ str = map[str];

//輸出對應的功能

if(str[0] != '[')

{ cout<

題目1029 魔咒詞典

題目1029 魔咒詞典 時間限制 5 秒 記憶體限制 32 兆 特殊判題 否 提交 3768 解決 1085 題目描述 哈利波特在魔法學校的必修課之一就是學習魔咒。據說魔法世界有100000種不同的魔咒,哈利很難全部記住,但是為了對抗強敵,他必須在危急時刻能夠呼叫任何乙個需要的魔咒,所以他需要你的幫...

1029 魔咒詞典

1029 魔咒詞典.cpp 定義控制台應用程式的入口點。題目1029 魔咒詞典 時間限制 5 秒記憶體限制 32 兆特殊判題 否提交 5097解決 1478 題目描述 哈利波特在魔法學校的必修課之一就是學習魔咒。據說魔法世界有100000種不同的魔咒,哈利很難全部記住,但是為了對抗強敵,他必須在危急...

九度1029 魔咒詞典(map)

題目描述 哈利波特在魔法學校的必修課之一就是學習魔咒。據說魔法世界有100000種不同的魔咒,哈利很難全部記住,但是為了對抗強敵,他必須在危急時刻能夠呼叫任何乙個需要的魔咒,所以他需要你的幫助。給你一部魔咒詞典。當哈利聽到乙個魔咒時,你的程式必須告訴他那個魔咒的功能 當哈利需要某個功能但不知道該用什...