字串中第一次出現的字元

2021-07-10 18:41:20 字數 519 閱讀 1841

題目:在字串中查詢出第乙個只出現一次的字元。如輸入"abaccdeff",則輸出b所在的下標。

方法一:時間複雜度為o(n*n)。遍歷字串中的每個字元,然後用該字元在字串中進行查詢,如果沒有找到和當前字元相同的字元。則當前字元為第乙個 只出現一次的字元。int firstnotrepeatingchar(string str)

} if (flag)

}return pos;

}

方法二:時間複雜度為o(n)。用乙個輔助陣列來做hash對映。第一次掃瞄時,更新在輔助陣列中當前字元出現的次數。hash查詢的時間複雜度為o(1)。第二次掃瞄時,在輔助陣列中找出當前字元出現一次的位置。
int findposstring(string str)

int pos = -1;

//第二次遍歷

for (int i = 0; i < str.size(); ++i) }

return pos;

}

返回字串中第一次出現某字元的位置

總結 資料結構基礎 c語言版 第2版,ellis horowitz著,朱仲濤譯 2.7節,page77,習題4 編寫函式strposl,參量是字串string和字元character。函式返回乙個整數,即在string中第一次出現character的位置。如果character不在string中,返...

第一次出現一次的字元

題目 在字串中找出第乙個出現一次的字元。如輸入 abaccdeff 則輸出 b 分析 最直觀的解法從頭掃瞄這個字串中的每乙個字元。當訪問到某個字元的時候拿這個字元和後面的字元相比較,如果在後面沒有發現重複的字元,那該字元就是只出現一次的字元。如果字串有n個字元,每乙個字元可能與後面的o n 個字元比...

第一次只出現一次的字元

include include includechar firstnotrepeatingchar char pstring if pstring null return 0 const int tablesize 256 unsigned int hashtable tablesize for u...