题目:在一个字符串中找到第一个只出现一次的字符。如输入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 }