首页 > 代码库 > [华为]找出字符串中第一个只出现一次的字符

[华为]找出字符串中第一个只出现一次的字符

输入描述:

输入一个非空字符串



输出描述:

输出第一个只出现一次的字符,如果不存在输出-1

 

输入例子:
asdfasdfo

 

输出例子:
o

 1 //用哈希统计词频
 2 #include<iostream>
 3 #include<string>
 4 using namespace std;
 5 int hasTable[256];
 6 
 7 int main()
 8 {    
 9     string s;    
10     while(cin>>s)
11     {        
12         bool flag = false;        
13         for(int i=0;i<256;++i) 
14             hasTable[i]=0;        
15         for(int i=0;i<s.size();++i) 
16             hasTable[s[i]]++;        
17         
18         for(int i=0;!flag && i<s.size();++i)
19         {            
20             if(hasTable[s[i]] == 1)
21             {                
22                 cout<<s[i]<<endl;                
23                 flag = true;                
24                 break;           
25             }        
26         }       
27         
28         if(!flag)            
29             cout<<-1<<endl;    
30     }   
31     return 0;
32 }

 














[华为]找出字符串中第一个只出现一次的字符