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

Posted 飞鸟各投林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[华为]找出字符串中第一个只出现一次的字符相关的知识,希望对你有一定的参考价值。

输入描述:

输入一个非空字符串



输出描述:

输出第一个只出现一次的字符,如果不存在输出-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 }

 














以上是关于[华为]找出字符串中第一个只出现一次的字符的主要内容,如果未能解决你的问题,请参考以下文章

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

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

Java解 | #HJ59找出字符串中第一个只出现一次的字符#

《剑指offer》第五十题II:字符流中第一个只出现一次的字符

字符流中第一个不重复的字符(python)

《剑指offer》第五十题I:字符串中第一个只出现一次的字符