劍指Offer 字元流中第一個不重複的字元
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 字元流中第一個不重複的字元
*
* 請實現一個函式用來找出字元流中第一個只出現一次的字元。例如,當從字元流中只讀出前兩個字元"go"時,第一個只出現一次的字元是"g"。
* 當從該字元流中讀出前六個字元“google"時,第一個只出現一次的字元是"l"。
*
* 如果當前字元流沒有存在出現一次的字元,返回#字元。
*/
public class JZ054TheFirstCharacterInTheCharacterStreamThatDoesNotRepeat {
Map<Character, Integer> map = new HashMap<>();
List<Character> list = new ArrayList<>();
//Insert one char from stringstream
public void Insert(char ch) {
map.put(ch, map.getOrDefault(ch, 0) + 1);
list.add(ch);
}
//return the first appearence once char in current stringstream
public char FirstAppearingOnce() {
char ch = '#';
for (char key : list) {
if (map.get(key) == 1) {
ch = key;
break;
}
}
return ch;
}
}
相關文章
- 字元流中第一個不重複的字元字元
- 劍指 Offer 48. 最長不含重複字元的子字串字元字串
- leetcode 劍指 Offer 48. 最長不含重複字元的子字串LeetCode字元字串
- (python版)《劍指Offer》JZ34:第一個只出現一次的字元Python字元
- [演算法練習及思路-leetcode劍指offer(Java解法)]No50.第一個只出現一次的字元演算法LeetCodeJava字元
- 查詢字串中第一個非重複字元的3種方法字串字元
- 劍指Offer--陣列中重複的數字陣列
- Leetcode 劍指 Offer 03. 陣列中重複的數字LeetCode陣列
- 劍指 Offer 35. 複雜連結串列的複製
- 劍指 offer 第一題: 二維陣列中的查詢陣列
- 劍指OFFER
- IO 字元流字元
- 【劍指offer】二進位制中1的個數
- 檔案的複製通過字元流和緩衝流(Buffered)字元
- 劍指Offer-38-兩個連結串列的第一個公共節點
- 劍指offer——兩個連結串列的第一個公共結點C++C++
- 劍指offer-----刪除連結串列中的重複節點
- 字元輸出流_Writer類&FileWriter類介紹和字元輸出流的基本使用_寫出單個字元到檔案字元
- Java-字元流Java字元
- 劍指offer刷題之路--1.陣列中重複的數字陣列
- 劍指Offer-31-最小的K個數
- 劍指 Offer 15. 二進位制中1的個數
- 力扣 - 劍指 Offer 52. 兩個連結串列的第一個公共節點力扣
- JavaScript刪除字串中重複字元JavaScript字串字元
- leedcode-字串中的第一個唯一字元字串字元
- 1202-字串中的第一個唯一字元字串字元
- 387. 字串中的第一個唯一字元字串字元
- 劍指offer導航
- Leetcode劍指offer(八)LeetCode
- 劍指 offer21
- 劍指offer16
- 劍指 offer20
- Leetcode 劍指 Offer 40. 最小的k個數LeetCode
- 【劍指offer】【2】字串的空格字串
- Python字串刪除第一個字元常用的方法!Python字串字元
- 【劍指offer】二維陣列中的查詢陣列
- 劍指Offer-把陣列中的數排成一個最小的數陣列
- 寫個方法,找出指定字串中重複最多的字元及其長度字串字元