日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...

發布時間:2023/12/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
推薦閱讀:宇宙條的工作總結:一年前還在面試找工作,一年后在面試找工作的學弟學妹們:第一次當面試官的經歷分享小編在求職找找工作期間劍指offer上的算法題刷了很多遍,并且每道題小編當時都總結了一種最適合面試時手撕算法的最優解法考慮到劍指offer算法題在面試中的高頻出現,小編每天和大家分享一道劍指offer上的算法題,以及小編總結的答案。下面是第054是道劍指offer算法題

題目描述

請實現一個函數用來找出字符流中第一個只出現一次的字符。例如,當從字符流中只讀出前兩個字符"go"時,第一個只出現一次的字符是"g"。當從該字符流中讀出前六個字符“google"時,第一個只出現一次的字符是"l"。注:如果當前字符流沒有存在出現一次的字符,返回#字符。分析:

思路比較明確:

  • 需要記錄每個字符出現的次數

  • 為了加快獲取第一次出現的字符,可以使用輔助數據結構保存潛在的字符,后續獲取第一個出現的字符時不用全局遍歷一遍了

  • 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(); }}

    猜你還想看

    分享一個實戰項目:基于SpringBoot的車牌識別系統,附項目源碼!!

    長按,掃碼,關注

    及時收看更多精彩內容

    博主:今日頭條大數據工程師專注:求職 面經 源碼 java 大數據技術分享

    點擊”閱讀原文“:領取5T精品資料面試總結100+實戰項目

    我知道你 “在看

    總結

    以上是生活随笔為你收集整理的java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。