求第一次只出現一次的字元(只要求遍歷一遍)

2021-07-01 20:28:38 字數 425 閱讀 9926

解決思路:

1、使用雜湊表,hash[256],遍歷一遍字串,得到每個字元出現的次數。

2、設定乙個order陣列,記錄字元出現的次序,然後遍歷次序陣列,在hash表中找出它出現的次數,如果為1,那就找到符合要求的字元了。

比如字串為「abccaffdde」,那麼存放在order陣列的字元就為order = 。

**如下:

#include char getuniquechar(char *pstr)

; unsigned int order[tablesize] = ;

char phashkey = pstr;

while(*phashkey != '\0')

hashtable[*phashkey++]++;

}for (i=0; i

第一次只出現一次的字元

include include includechar firstnotrepeatingchar char pstring if pstring null return 0 const int tablesize 256 unsigned int hashtable tablesize for u...

第一次只出現一次的字元

在字串中找出第乙個只出現一次的字元。如輸 abaccdeff 則輸出 b include string include map include iostream using namespace std 法1 用map o nlogn char firstnotrepeatedchar0 char s...

第一次只出現一次的字元

題目劍指offer50 第一次只出現一次的字元 在乙個字串 0 字串長度 10000,全部由字母組成 中找到第乙個只出現一次的字元,並返回它的位置,如果沒有則返回 1 需要區分大小寫 總結 方法一 基於linkedhashmap的方法 由於題目與字元出現的次數有關,所以可以想到用乙個容器統計每個字元...