一、題目:第一個只出現一次的字符 題目:在字符串中找出第一個只出現一次的字符。如輸入"abaccdeff",則輸出'b'。要求時間復雜度為O(n)。 最直觀的想法是從頭開始掃描這個字符串中的每個字符。當訪問到某字符時拿這個字符和后面的每個字符相比較,如果在后面沒有發現重復的字符 ...
方法 : 看到這個題目,最直觀的想法就是就是遍歷法,也就是從頭開始取字符串中的一個字符,將其與其后的所有字符比較,如果有相同的字符,那么就證明它不是只出現一次的字符。當第一次出現遍歷完其后字符並且沒有重復時,表明這個字符就是 第一個只出現一次的字符 。如果字符串有n個字符,每個字符可能與后面的O n 個字符相比較,因此這種思路的時間復雜度是O n 。 方法 : 題目中要求第一個只出現一次的字符, ...
2012-09-26 12:03 3 11391 推薦指數:
一、題目:第一個只出現一次的字符 題目:在字符串中找出第一個只出現一次的字符。如輸入"abaccdeff",則輸出'b'。要求時間復雜度為O(n)。 最直觀的想法是從頭開始掃描這個字符串中的每個字符。當訪問到某字符時拿這個字符和后面的每個字符相比較,如果在后面沒有發現重復的字符 ...
樣例:比如“abcdabc”,第一個只出現一次的字符為d,位置為3 解決方案1:O(n*n)的復雜度 遍歷字符串中的每個字符,然后用該字符在字符串中進行查找,如果沒有找到和當前字符相同的字符。則當前字符為第一個 只出現一次的字符。 解決方案2:O(n)的復雜度 采取空間換 ...
題目地址 方法一: 兩個方向優化時間: strlen() 一次性算出來,不要在循環中多次計算 從前往后遍歷時,如果a[i ]== a[j],可以令a[j ] = '*' ,特殊字符作為標志,這樣,如果后面的循環中遇到 a[i] = '*' 【外層循環 ...
思路:利用ASCII 的編碼, 1,一次遍歷得到所有字符的下標對應出現的次數 2,遍歷結果,找出第一次只出現一次的字符 3,此算法的時間復雜度為O(n) ...
要求: 1. 不能依賴庫函數直接實現此功能,需使用基礎的數據結構實現 2. 時間復雜度 O(n) 思路: 1. 用字典存儲每個字符在字符串中出現的次數 2. 列表是有序的,用來存儲字符的出現先后 3. 最后,從前向后遍歷列表,找出第一個出現次數為1的字符,即為符合 ...
描述 給定一個只包含小寫字母的字符串,請你找到第一個僅出現一次的字符。如果沒有,輸出no。 輸入一個字符串,長度小於100000。輸出輸出第一個僅出現一次的字符,若沒有則輸出no。樣例輸入 樣例輸出 上面這個更看得懂! 這個就看不懂了!最后 ...
題目描述: 在一個字符串(0<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫)。 解題思路: 對於本題,這里給出以下三種解法:(1)用 HashMap 建立每個字符與其出現次數的映射 ...
s = 'hellobaby' def findchar(s): for i in s: if s.count(i)==1: return i, s.index(i) m,n=findchar(s) print('第一個出現一次的字符 ...