关注
楼主,基于字典树的第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;
}
}
查看原帖
点赞 评论
相关推荐
2025-12-28 22:19
门头沟学院 Java
不敢追165女神:简历写得毫无特点,你说你要是大二或者大三找寒假实习到暑期实习这段时间,你的简历还能约到面试。但是你是研究生哥,面试官不会因为你是研究生而降低要求,反而会觉得你是研究生才学了这么一点?为什么我不找个同阶段的本科生? 点赞 评论 收藏
分享
01-30 10:21
中北大学 golang
27届学院本誓死冲击...:技术栈不用搞这么详细,主要还是看实习和项目,毕竟技术栈就那点,你能写这么多,别人也可以写这么多,模版换一下换成上下的,不知道怎么排版可以去看看别人怎么写 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
13881次浏览 168人参与
# 你最讨厌面试被问什么 #
1212次浏览 26人参与
# 牛客AI体验站 #
17859次浏览 302人参与
# 有转正机会的小厂实习值得去吗? #
518次浏览 18人参与
# 牛友们,签完三方你在忙什么? #
137364次浏览 993人参与
# 担心入职之后被发现很菜怎么办 #
282488次浏览 1185人参与
# 如何缓解入职前的焦虑 #
258848次浏览 1451人参与
# 校招第一份工作你干了多久? #
139384次浏览 609人参与
# 去年的flag与今年的小目标 #
34275次浏览 337人参与
# 牛客租房专区 #
151398次浏览 1479人参与
# 秋招开始捡漏了吗 #
229457次浏览 1044人参与
# 九月了,是考研还是就业? #
89239次浏览 556人参与
# 秋招投递攻略 #
268788次浏览 2553人参与
# 这份实习,有没有动摇过你的职业方向? #
2159次浏览 39人参与
# 搜狐工作体验 #
4116次浏览 29人参与
# 机械人求职现状 #
33640次浏览 297人参与
# 我是XXX,请攻击我最薄弱的地方 #
61780次浏览 409人参与
# 用友工作体验 #
18083次浏览 151人参与
# 你的工资什么时候发? #
57468次浏览 355人参与
# 你的实习什么时候入职 #
348073次浏览 2291人参与
查看15道真题和解析