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

2021-09-26 18:40:32 字數 673 閱讀 5871

方法一(不要求時間複雜度,只要求做出來)

兩次迴圈巢狀,遍歷字串。

int

find_one

(char str,

int len)

if(count ==2)

}if((count ==1)

&&(j==len))}

return-1

;}intmain()

輸出結果:

方法二(要求時間複雜度為o(n) )

根據字元ascii 字元特性,先統計每個字元出現的次數,放入乙個輔助陣列中,最後返回第乙個只出現一次的字元,遍歷一遍字串即可。

int

find_one

(char

*str)

;char

*p = str;

int i =0;

while

(*p !=

'\0'

) p = str;

while

(*p !=

'\0'

) p++;}

return

'\0';}

intmain()

輸出結果:b

補充:變種題目,找出第一次重複出現的字元。(方法相同)

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

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

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

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

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

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