題目:在乙個字串中找到第乙個只出現一次的字元。如輸入abaccdeff,則輸出b。
分析:如果字元都是8位,可以用256b的空間表示每個字元的出現次數,遍歷字串一遍完成計數,第二次遍歷該字串,找出第乙個出現次數僅為1的字元並輸出。
#include #include #include #include void get_rand_str(char s,int number)
s[i] = '\0';
printf("%s\n",s);
}char firstnotrepeatingchar(char* pstring)
return *pstr;
}int main()
擴充套件hash的方法變成不可能,因為沒有這麼大的記憶體。二這裡又是海量的資料,要盡可能避免讀寫外存資料。
時間複雜度:o(nlogn),讀寫檔案的複雜度o(log(n/m)
查詢字串中第乙個只出現一次的字元
考研的時候學習過雜湊函式,但這只是書本上的知識,簡單的理解,從來沒用過,也不知道怎麼用,直到學了第一堂演算法課,原來hash表可以用陣列模擬,統計數字或字元出現的次數。如下 int chash getstunum int data,int len,int score if data null len...
找字串中第乙個只出現一次的字元。
方法一 不要求時間複雜度,只要求做出來 兩次迴圈巢狀,遍歷字串。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...