首页 > 其他 > 详细

字符流中出现的第一个字符

时间:2019-03-31 13:30:16      阅读:109      评论:0      收藏:0      [点我收藏+]
 1 package algorithms;
 2 
 3 import java.util.HashMap;
 4 
 5 public class FirstAppearingOnce {
 6     HashMap<Character,Integer> hm = new HashMap<>();
 7     StringBuffer sb = new StringBuffer();
 8     //Insert one char from stringstream
 9     public void Insert(char ch)
10     {
11         if(hm.containsKey(ch)) {
12             hm.put(ch, hm.get(ch)+1);
13         }else {
14             hm.put(ch, 1);
15         }
16         sb.append(ch);
17     }
18   //return the first appearence once char in current stringstream
19     public char FirstAppearingOnce_1()
20     {
21         char[] str = sb.toString().toCharArray();
22         for(int i=0;i<str.length;i++) {
23             if(hm.get(str[i])==1) {
24                 return str[i];
25             }
26         }
27         return ‘#‘;
28     }
29 }

其实也可以自己实现一个简易的hashmap用来解决该道题

因为char(8位)有256种取值  所以可以创建一个长度为256的数组  数组的下标即为ascii码值  数组的值即为出现的次数,如下所示:

int[] arr = new int[256];
    StringBuffer s = new StringBuffer();
    //Insert one char from stringstream
    public void Insert(char ch)
    {
        s.append(ch);
        arr[ch] +=1;
    }

 

字符流中出现的第一个字符

原文:https://www.cnblogs.com/ustc-anmin/p/10630787.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!