文字を繰り返すことなく、文字列の安全性を証明する最初のオファー

タイトル説明

文字にのみ表示されます初めての文字列を検索するために機能を実装してください。例えば、文字ストリームは最初の2つの文字を読み取ったときに、最初の文字は、唯一の「G」一度起こる「行きます」。最初の6つの文字を読み出すときに最初に一つだけの文字「L」が表示され、文字ストリームから「グーグル」。

思考

ハッシュ:その文字数の出現数が1であれば戻り、その後、文字列を横断した後、文字は数字プラス1の配列に対応した後に1回の読み出し文字ずつをそれぞれの文字列表現の出現数を作成します。

コード

class Solution
{
public:
    string str;
    int Hash[128];
  //Insert one char from stringstream
    void Insert(char ch)
    {
        str = str + ch;
        Hash[ch-NULL]++;
    }
  //return the first appearence once char in current stringstream
    char FirstAppearingOnce()
    {
        if(str.size() == 0)
            return '#';
        for(int i = 0; i < str.size();i++)
        {
            if(Hash[str[i]-NULL] == 1)
                return str[i];
        }
        return '#';
    }
};
公開された85元の記事 ウォンの賞賛0 ビュー403

おすすめ

転載: blog.csdn.net/weixin_38312163/article/details/104766160