字符流中第一個不重複的字符

 

題目:請實現一個函數用來找出字符流中第一個只出現一次的字符。例如,當從字符流中只讀出前兩個字符"go"時,第一個只出現一次的字符是"g"。當從該字符流中讀出前六個字符“google"時,第一個只出現一次的字符是"l"。

輸出描述:如果當前字符流沒有存在出現一次的字符,返回#字符。

分析:用哈希思想統計每個字符出現的次數

string ret;
    int hash[256]={0};
    void Insert(char ch)
    {
        ret+=ch;
        hash[ch]++;
    }
  //return the first appearence once char in current stringstream
    char FirstAppearingOnce()
    {
        int len=ret.size();
        for(int i=0;i<len;i++)
        {
            if(hash[ret[i]]==1)
                return ret[i];
        }
        return '#';
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章