java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...
生活随笔
收集整理的這篇文章主要介紹了
java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
推薦閱讀:宇宙條的工作總結:一年前還在面試找工作,一年后在面試找工作的學弟學妹們:第一次當面試官的經歷分享小編在求職找找工作期間劍指offer上的算法題刷了很多遍,并且每道題小編當時都總結了一種最適合面試時手撕算法的最優解法。考慮到劍指offer算法題在面試中的高頻出現,小編每天和大家分享一道劍指offer上的算法題,以及小編總結的答案。下面是第054是道劍指offer算法題: import java.util.*;public class Solution { //Insert one char from stringstream //統計所有字符串的出現次數 private int[] count = new int[256]; //主要是為了快速查找潛在的出現一次的字符串 private LinkedListqueue = new LinkedList<>(); public void Insert(char ch){ count[ch] += 1; if(count[ch]==1) queue.addLast(ch); } //return the first appearence once char in current stringstream public char FirstAppearingOnce(){ while( !queue.isEmpty() && count[queue.peek()]>=2)//查找第一個出現一次的字符串 queue.removeFirst(); if(queue.isEmpty()) return '#'; return queue.peek(); }}
題目描述
請實現一個函數用來找出字符流中第一個只出現一次的字符。例如,當從字符流中只讀出前兩個字符"go"時,第一個只出現一次的字符是"g"。當從該字符流中讀出前六個字符“google"時,第一個只出現一次的字符是"l"。注:如果當前字符流沒有存在出現一次的字符,返回#字符。分析:思路比較明確:
需要記錄每個字符出現的次數
為了加快獲取第一次出現的字符,可以使用輔助數據結構保存潛在的字符,后續獲取第一個出現的字符時不用全局遍歷一遍了
猜你還想看
分享一個實戰項目:基于SpringBoot的車牌識別系統,附項目源碼!!長按,掃碼,關注
及時收看更多精彩內容
博主:今日頭條大數據工程師專注:求職 面經 源碼 java 大數據技術分享點擊”閱讀原文“:領取5T精品資料,面試總結、100+實戰項目
我知道你 “在看”
總結
以上是生活随笔為你收集整理的java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查看端口状态的命令是什么(查看Linux
- 下一篇: 运放电路分析_运放参数的详细解释和分析p