查詢字串中第乙個只出現一次的字元

2021-06-28 10:30:45 字數 1119 閱讀 7877

考研的時候學習過雜湊函式,但這只是書本上的知識,簡單的理解,從來沒用過,也不知道怎麼用,直到學了第一堂演算法課,原來hash表可以用陣列模擬,統計數字或字元出現的次數。

**如下:

int chash::getstunum(int* data, int len, int score){

if(data == null || len <= 0 || score < 0 || score > max_score){

return error;

//count each score 

int *scoremap = new int[max_score];

for(int i = 0; i < max_score; i++){

scoremap[i] = 0;

for(int i = 0; i < len; i ++){

scoremap[data[i]] ++;//關鍵字對映到scoremap中,關鍵字每出現一次,對應的的scoremap[data[i]]加一;

int result = scoremap[score];

delete scoremap;

return result;

//統計字元出現的頻率,本題是求第乙個只出現一次的字元

char chash::getfirstchar(char *str){

if(str == null){

return ' ';

const int char_num = 256;

int *charmap = new int[char_num];     //assic碼0-255;

for(int i = 0; i < char_num; i++){

charmap[i] = 0;

char *p = str;

while( *p != '\0'){

charmap[*p] ++;      //字元隱式轉換成整形;

p++;

p = str;

while( *p != '\0'){

if(charmap[*p] == 1){

return *p;

p++;

delete charmap;

return ' ';

查詢字串中第乙個只出現一次的字元

題目 在乙個字串中找到第乙個只出現一次的字元。如輸入abaccdeff,則輸出b。分析 如果字元都是8位,可以用256b的空間表示每個字元的出現次數,遍歷字串一遍完成計數,第二次遍歷該字串,找出第乙個出現次數僅為1的字元並輸出。include include include include void...

找字串中第乙個只出現一次的字元。

方法一 不要求時間複雜度,只要求做出來 兩次迴圈巢狀,遍歷字串。int find one char str,int len if count 2 if count 1 j len return 1 intmain 輸出結果 方法二 要求時間複雜度為o n 根據字元ascii 字元特性,先統計每個字元...

字串中第乙個只出現一次的字元

在字串中找出第乙個只出現一次的字元。如輸入 abaccdeff 則輸出b。如果字串中不存在只出現一次的字元,返回 字元。樣例 輸入 abaccdeff 輸出 b 思路 用乙個hashmap key是每個字母 value是出現的次數,第一次用for迴圈將字串每個字元錄到雜湊map裡,如果有重複的就把v...