码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-04-05 16:28:08      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:name   main   iostream   break   输入   include   style   bre   names   

输入描述:

输入一个非空字符串



输出描述:

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

 














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

标签:name   main   iostream   break   输入   include   style   bre   names   

原文地址:http://www.cnblogs.com/hellochennan/p/6668980.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!