字符串处理问题

coobesdn 2011-07-19 08:52:59
如何检测新输入字符串,于已存在的字符串重复问题,本人初学,只会用for循环一个一个比比较,这杨程序太慢,哪位牛哥,给个牛算法!先谢啦
...全文
164 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
mLee79 2011-07-19
  • 打赏
  • 举报
回复
要快就AC或者DFA。
赵4老师 2011-07-19
  • 打赏
  • 举报
回复
不超过1000个的话,循环并不慢。
tangyulong1214 2011-07-19
  • 打赏
  • 举报
回复
1、给已经存在字符串排序;
2、在用新输入字符串进行比较

另一种思路,使用hash表,来存储、查询字符串,如此效率比较高
可以考虑用stl库的map/set来实现。
qingkongxiaoyang 2011-07-19
  • 打赏
  • 举报
回复
这好像是重复的发贴哎。上一篇中已经回复了哦。
tomatobin 2011-07-19
  • 打赏
  • 举报
回复
其实我没看懂题目~
LM星 2011-07-19
  • 打赏
  • 举报
回复
字符窜对比之有一个一个比没一其他高效办法其实系统提供的底层API也是用这种方法~~~
wellstudyc 2011-07-19
  • 打赏
  • 举报
回复
字符串匹配,KMP算法吧。
至善者善之敌 2011-07-19
  • 打赏
  • 举报
回复
set容器更方便
C/C++ code

int _tmain(int argc, _TCHAR* argv[])
{
set<string>mymap;
mymap.insert("nihao");
mymap.insert("nihao");
mymap.insert("nihao");
set<string>::iterator iter;
for(iter=mymap.begin();iter!=mymap.end();iter++)
{
cout<<*iter<<endl;
}
return 0;
}
ZHAOCHUANsuxiaoyu 2011-07-19
  • 打赏
  • 举报
回复
char a[],b[];
strcmp(a,b)
luciferisnotsatan 2011-07-19
  • 打赏
  • 举报
回复
用set<string>
QQ515311445 2011-07-19
  • 打赏
  • 举报
回复

char *str1="abcdefg";
char *str2="cde";
if(strcmp(str1,str2)==0)
{
//是相同字符串
}
else
{
//不是相同的字符串
}
bdmh 2011-07-19
  • 打赏
  • 举报
回复
如果是string类型,可以使用find方法,如果是char数组,除了循环,还可以使用 kmp算法
ouyh12345 2011-07-19
  • 打赏
  • 举报
回复
strcmp
string::find
赵4老师 2011-07-19
  • 打赏
  • 举报
回复
可以试试用_lsearch函数
5t4rk 2011-07-19
  • 打赏
  • 举报
回复

cmp find 函数都可以的

都是系统的。

自己写的一般效率都不高

64,439

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧