Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4842273
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类: LINUX

2009-07-21 14:52:29

 
第一个只出现一次的字符
题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b 分析:这道题是2006google的一道笔试题。
 
生不逢时,google要是给我出这种题目^_^.大概就是用到了hash的思想!!!!其实你也可以理解为是什么桶排序
 
 

#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
  int i = 0;
  char* str = "abaccdeff";
  int ch[256];
  memset(ch,0,sizeof(ch));
  
  int len = strlen(str);
  for(i=0; i<len; i++)
    ch[str[i]-'0']++;
    
  for(i=0; i<len; i++)
   if(ch[str[i]-'0'] == 1)
    {
      printf("in str:%s\nfirst apprear once is %c\n",str,str[i]);
      break;
    }
  system("PAUSE");    
  return 0;
}

阅读(2124) | 评论(6) | 转发(0) |
给主人留下些什么吧!~~

xp52113142009-07-26 23:21:30

你的字符数组是按字母顺序排列的吧 如果b 和e的位置互换 结果如何呢?

chinaunix网友2009-07-26 22:53:24

画蛇添足, -'0'干什么

chinaunix网友2009-07-26 22:01:39

估计这只是google的海选题吧,小题大做了。

chinaunix网友2009-07-26 18:03:21

用计数排序也可以的阿,不过就是效率不怎么高了

chinaunix网友2009-07-26 03:03:15

做个表,遍历一次字符转为计数,第一眼看去就是这个思路了 阁下的做法和我一样的,字符串处理的笔试题见得多了,其实都不离那几把斧,没什么稀奇的