在一个字符串中找到第一个只出现一次的字符
题目:在一个字符串中找到第一个只出现一次的字符。如输入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 }
**************************************************************
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对困难,能够不休不眠;面对压力,能够迎接挑战。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想,用智慧把属于自己的事业开创。其实我是一个程序员[=.=]
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对困难,能够不休不眠;面对压力,能够迎接挑战。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想,用智慧把属于自己的事业开创。其实我是一个程序员[=.=]