关注
楼主,基于字典树的第21行会出现越界问题,比如case: zyyhappy zyy 不同长度的解决方案,用标识isEnd来控制,贴一下我的代码,如果有问题,还望各位指正。 #include <iostream>
#include <list>
#include <vector>
#include <map>
#include <string>
#include <algorithm>
using namespace std;
class Tire
{
public:
Tire *next[26];
bool isEnd;
Tire()
{
for(int i = 0 ; i < 26 ;i++)
next[i] = nullptr;
isEnd = false;
}
};
bool findSS(Tire *root, string s)
{
for(int i=0 ; i < s.size() ;i++)
{
int index = s[i] - 'a';
if(root->next[index] == nullptr)
return false;
root = root->next[index];
}
return root->isEnd;
}
void addTire(Tire* node, string word)
{
for(int i = 0 ; i < word.size() ;i++)
{
int index = word[i] - 'a';
if(node->next[index] == nullptr)
node->next[index] = new Tire();
node = node->next[index];
}
node->isEnd = true;
}
int main()
{
int t,n;
string s;
cin >> t;
while(t--)
{
cin >> n;
Tire *root = new Tire();
vector<string> v;
bool sign = false;
for(int i = 0 ; i < n ; i++)
{
cin >> s;
string new_s = s+s;
for(int k = 0 ; k < s.size()+1 ;k++)
{
string find_s = new_s.substr(k,s.size());
if(findSS(root,find_s))
{
sign = true;
break;
}
reverse(find_***egin(), find_s.end());
if(findSS(root, find_s))
{
sign = true;
break;
}
}
addTire(root, s);
}
if(sign) cout << "Yeah" << endl;
else cout << "Sad" << endl;
}
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
05-19 16:43
广西师范大学 Java 点赞 评论 收藏
分享
05-29 11:38
浙江工业大学 嵌入式软件开发 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届校招投递进展 #
30332次浏览 233人参与
# 小米提前批笔试难吗 #
33997次浏览 357人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
11741次浏览 126人参与
# 为了找工作你花了哪些钱? #
27722次浏览 262人参与
# 央国企投递记录 #
88035次浏览 1359人参与
# 神州信息工作体验 #
11576次浏览 56人参与
# 你觉得专业和学校哪个对薪资影响最大 #
61331次浏览 490人参与
# 设计人的面试记录 #
123380次浏览 1341人参与
# 来聊聊你目前的求职进展 #
634227次浏览 6745人参与
# 外包能不能当跳板? #
34379次浏览 220人参与
# 你今年的保底offer是哪家 #
118348次浏览 537人参与
# 烟草笔面经互助 #
16893次浏览 180人参与
# 大疆的机械笔试比去年难吗 #
72892次浏览 618人参与
# 打工人的精神状态 #
49534次浏览 858人参与
# 牛友们,签完三方你在忙什么? #
98220次浏览 852人参与
# 听到哪句话就代表面试稳了or挂了? #
170762次浏览 1369人参与
# 如何缓解入职前的焦虑 #
192364次浏览 1339人参与
# 研究所VS国企,该如何选 #
184846次浏览 1783人参与
# 你秋招想去哪些公司 #
22196次浏览 809人参与
# 担心入职之后被发现很菜怎么办 #
130800次浏览 775人参与
# 秋招结束之后的日子 #
75200次浏览 911人参与