題目描述:在一個字符串(1<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符,並返回它的位置。如果字符串爲空,返回-1。
看到這個題,第一個反應可能是按順序遍歷字符串,對字符串中每一個字符,都去看它的後面有沒有和它一樣的字符。但是這種方法太費時間,所以要換一種思路。
如果是建立一個HashMap,把key設爲字符串中每個字符,value設爲每個字符出現的次數,那麼我們只需要對字符串進行一次遍歷,用字符串中每個字符作爲key,去找value爲1的那個字符就可以了。
題目描述:在一個字符串(1<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符,並返回它的位置。如果字符串爲空,返回-1。
看到這個題,第一個反應可能是按順序遍歷字符串,對字符串中每一個字符,都去看它的後面有沒有和它一樣的字符。但是這種方法太費時間,所以要換一種思路。
如果是建立一個HashMap,把key設爲字符串中每個字符,value設爲每個字符出現的次數,那麼我們只需要對字符串進行一次遍歷,用字符串中每個字符作爲key,去找value爲1的那個字符就可以了。
void Print(TreeNode* pRoot) { queue<TreeNode*> que; int cur_count(0); int next_count(0); if (pRoo