1. 程式人生 > >在一個字符串中找到第一個只出現一次的字符

在一個字符串中找到第一個只出現一次的字符

額外 掃描 循環 每次 時間 str 找到 一個 第一個只出現一次的

在一個字符串中找到第一個只出現一次的字符。如輸入abaccdeff,則輸出b。

(1)不使用額外空間,時間復雜度是O(n^2)

像冒泡排序那樣,內存循環對外循環判斷,比如第一個a,掃描後續元素,有a則不滿足。

(2)哈希表。

k = 0; //填寫哈希表時,每次設置成1就++k 
typedef struct {
    int flag;//初始化為0,第一次掃描到設置成1,再掃描到設置成2 
    int order;//初始化266,第幾個設置成1的就設置成,幾 
};//哈希表的結點

掃描完字符串後,就掃描哈希表:if(flag == 1 && a[ i ].order < 當前最小order索引值 ) 就更新索引值。

時間復雜度是: 255 + 255 + n + 255 = O(n)

在一個字符串中找到第一個只出現一次的字符