在一个字符串中找到第一个只出现一次的字符

题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。

 1 const int N = 256 ;
 2 void Function( char * str , int * hash )
 3 {
 4     char * p = str ;   
 5     while( *p )
 6     {
 7         hash[ *p ]++ ; //自增       
 8         p++ ;         
 9     }  
10   p = str;
11     while( *p ) //扫描第二遍,当扫描都出现次数为1的字符,即停止 
12     {
13         if( hash[ *p ] == 1 )
14         {
15             cout << *p ;
16             break; 
17         }
18         p++ ;         
19     }      
20 }
21 
22 int main( )
23 {
24      char str[ ] = "wabacckdeffbz" ;
25      int  hash[ N ] ;
26      memset( hash , 0 , sizeof( hash ) ) ;  /*  memset库函数<cstring>,作用是将hash中
27                         前sizeof( hash )在这里即N个字节替换为0并
28                         返回a;其实这一句是对hash[]做初始化,相当
29                         于hash[N]={0},第一个元素手动设为0,
30                         其余元素自动默认设为0*/
31      Function( str , hash ) ;
32      return 0 ;    
33 }

转载于:https://www.cnblogs.com/kevinGaoblog/archive/2012/04/06/2435457.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值