现在的位置: 首页 > 综合 > 正文

查找里面有没有相同的字符(ZT) — 很巧妙啊!!!

2012年08月05日 ⁄ 综合 ⁄ 共 395字 ⁄ 字号 评论关闭
写一个函数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;
}

抱歉!评论已关闭.