給出了n個單詞,已經按長度排好了序。如果某單詞i是某單詞j的字首,i->j算一次接龍(兩個相同的單詞不能算接龍)。
你的任務是:對於輸入的單詞,找出最長的龍。
第一行為n(1<=n<=105)。以下n行每行乙個單詞(由小寫組成),已經按長度排序。(每個單詞長度<50)
僅乙個數,為最長的龍的長度。ia
intable
inter
1<=n<=105
棧練習。
按字典序排序,此時單詞字首相同的必定排在一起。
用乙個棧來維護,若棧頂元素是當前單詞的字首(注意不能相等),則把當前單詞扔進棧裡,若不是字首,則彈出,重複下去。直到棧為空或者棧頂元素是當前單詞的字首,則扔進去。在操作的同時更新答案。
**:
#include
#include
#include
#include
#include
using
namespace
std;
stack
s;string str[100010];
bool check(string s,string ss)
return
true;
}int main()
else s.pop();
}if(s.empty()) s.push(str[i]);
}ans=max(ans,(int)s.size());
}printf("%d",ans);
return
0;}
codevs 1051 接龍遊戲
時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond 給出了n個單詞,已經按長度排好了序。如果某單詞i是某單詞j的字首,i j算一次接龍 兩個相同的單詞不能算接龍 你的任務是 對於輸入的單詞,找出最長的龍。輸入描述 input description 第一行為n 1 n 1...
codevs 1051 接龍遊戲
時間限制 1 s 空間限制 128000 kb 題目等級 鑽石 diamond 題解給出了n個單詞,已經按長度排好了序。如果某單詞i是某單詞j的字首,i j算一次接龍 兩個相同的單詞不能算接龍 你的任務是 對於輸入的單詞,找出最長的龍。輸入描述 input description 第一行為n 1 n...
CODEVS 1051 接龍遊戲
題目描述 description 給出了n個單詞,已經按長度排好了序。如果某單詞i是某單詞j的字首,i j算一次接龍 兩個相同的單詞不能算接龍 你的任務是 對於輸入的單詞,找出最長的龍。輸入描述 input description 第一行為n 1 n 105 以下n行每行乙個單詞 由小寫組成 已經按...