1
我在Matlab中使用containers.Map類作爲字典,我想查找不在我的地圖中的第一個子字符串(從左到右)。查找第一個子字符串不在地圖中
例如,假設我有串「數學」,我的地圖是這樣的
key value m 1 ma 2 . . . . . .
所以,如果我開始從左讀到右邊的第一子沒有在地圖中會「墊'。
這使我想到的答案顯然是循環每一個字符,並做一些串聯,以便找到的子字符串使用方法iskey,是不是在我的地圖(地圖,鍵),其中關鍵是在子每次迭代。
有沒有更高效的做到這一點?也許在matlab中有一些預定義的函數,或者至少有一個更優雅的代碼。
謝謝
有趣的問題!我想不出一種既高效又合理簡單的方法。我想到的「更有效率」的方式包括將地圖重寫爲樹結構,以便循環的每次迭代都需要一次查找和一次比較測試......您是在尋找簡單的東西,還是阻礙了性能某種程度上來說?你所描述的方法很簡單,可以作爲一個函數來編寫,所以我個人只是想說明一下。 –
您能否指出我們走向哪個階段,您認爲最需要時間?一種可能的加速是iskey()可以一次搜索多個鍵。我不知道這是如何實現的,但它可能不會比多個iskey()慢,並且至少可以爲您節省循環。原則上,如果你想保存查找數據結構必須能夠節省時間搜索多個鍵,這可能是可能的,如果它是一棵樹,並且有一個聰明的iskey()實現... – Bitwise
事實上,我正在尋找爲了達到同樣的更簡單的方式,我對速度性能不太感興趣。 –