如何实现该函数?

mawl2002 2009-03-05 09:12:35
实现一函数bool HasDulplicate( char *string ),功能为返回char *string中是否出现重复的字符,比如 a和a相同, a和A不同.
成功返回true,失败返回false,并且要求复杂度为O(N).请教各位大侠!关键是复杂度的要求!
...全文
146 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mawl2002 2009-03-05
  • 打赏
  • 举报
回复
好,谢谢大家。怎么散分?
ppass 2009-03-05
  • 打赏
  • 举报
回复

bool HasDulplicate( char *string )
{
if(string == NULL)
return false;

char cha[26] = {0}; //'a' = 97
char chA[26] = {0}; //'A' = 65
int nLen = strlen(string);
for(int i=0;i<nLen;i++)
{
int tmp = string[i];
if(tmp>96 && tmp<123)
{
tmp -= 97;
cha[tmp]++;
if(cha[tmp]>1)
return true;
}
else if(tmp<91 && tmp>64)
{
tmp -= 65;
chA[tmp]++;
if(chA[tmp]>1)
return true;
}
}

}
jn989 2009-03-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ckc 的回复:]
建立一个
int js[256]
按字节计数,比如找到一个a就
js['a']++
然后再检查这个数组有没有大于1的就搞定了
[/Quote]
好办法,学习了
WizardOz 2009-03-05
  • 打赏
  • 举报
回复
1。定义一52字符的数组,置零
2。遍历一遍你的字符串,若找到 a,则先检查第一个位置,为1则返回 true,否则置1 找到 b则处理第二个位置。
3。重复第二步直到字符串完。
4。返回false
ckc 2009-03-05
  • 打赏
  • 举报
回复
建立一个
int js[256]
按字节计数,比如找到一个a就
js['a']++
然后再检查这个数组有没有大于1的就搞定了

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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