Chinaunix首页 | 论坛 | 博客
  • 博客访问: 487867
  • 博文数量: 115
  • 博客积分: 5016
  • 博客等级: 大校
  • 技术积分: 1401
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-21 16:03
文章分类

全部博文(115)

文章存档

2013年(1)

2010年(17)

2009年(76)

2008年(21)

我的朋友

分类: LINUX

2009-07-15 16:01:45

写一个函数fn(),功能是传一个参数是字符串,查找里面有没有相同的字符,有的话返回1,否则0.
两种方法,一是效率最高的,二是最节省内存的.

int fn0(const char *str)
{
   char num[256] = {0};
   unsigned char *pos = (unsigned char *)str;
   while (*pos != 0 && num[*pos] == 0) {
      num[*pos++] = 1;
   }
   return *pos == 0 ? 0 : 1;
}

int fn1(const char *str)
{
   const char *p1, *p2;
   if (*str == 0)
      return 0;
   for (p1 = str; *p1 != 0; p1++) {
      for (p2 = p1 + 1; *p2 != 0; p2++) {
         if (*p1 == *p2)
            return 1;
      }
   }
   return 0;
}
阅读(945) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~