找出字串

2021-07-12 01:26:37 字數 412 閱讀 7366

有乙個排過序的字串陣列,但是其中有插入了一些空字串,請設計乙個演算法,找出給定字串的位置。演算法的查詢部分的複雜度應該為log級別。

給定乙個string陣列str,同時給定陣列大小n和需要查詢的string x,請返回該串的位置(位置從零開始)。

測試樣例:

["a","b","","c","","d"],6,"c"
返回:3

【思路】二分查詢,需要特殊處理的是當str[mid]==" "時,無法判斷去低區間還是高區間,解決辦法是,向左遍歷到第乙個不是不空的字串,再做比較。如果左邊全部為空,則跳到右半邊。

class finder else if(x > str[mid])

}else

}return -1;

}};

找出字串

有乙個排過序的字串陣列,但是其中有插入了一些空字串,請設計乙個演算法,找出給定字串的位置。演算法的查詢部分的複雜度應該為log級別。給定乙個string陣列str,同時給定陣列大小n和需要查詢的string x,請返回該串的位置 位置從零開始 測試樣例 a b c d 6,c 返回 3 解題思路 二...

找出字串的所有子字串

字首樹實現,遍歷字串。把字串中的每乙個字元都視為字首,用乙個字首樹儲存以每乙個字元為開頭的字串 舉例為 abbc 然後遍歷字首樹,把每個子樹的每一層都作為乙個字串輸出即可。import copy class trienode object def init self,word self.word w...

找出字串的最長不重複字串

這是我遇到的一道校招題目 給定一字串只包含數字,請寫乙個演算法,找出該字串中的最長不重複子串 不重複是指子串中每一元素不同於子串中其他元素 如 120135435 最長不重複子串為 201354 要求用j a或者c來寫,我用了j a。思想 從頭開始擷取字串,只要後乙個元素不在擷取的字串裡,就更新擷取...