Tiny URL 算法實現【*】

Tiny URL基本也算是必考題目了,我是第一次刷這道題感覺并沒有什么頭緒在encoding上面。我覺得是不是就隨機生成幾個數字,然后存在Database里,跟本來的url做一個matching。decode的話直接找database看/ HashMap.

也是system design可以,但是這道題不能使用database,如果用了HashMap,user如果初始化另一個object 就沒法get Key了。


看完答案發現,看來只會生成一個TinyURL object. 所以我原本想的hashmap是可以的。 這個地方需要問面試官確認是不是只生成一個object。


把給定的url 換成prefix+ counter. counter 變量是一個global variable。 這個方法的一個很嚴重的問題是,當第10000萬個用戶使用這個方法的時候,也許他生成的編號比原本的url還長,這就不是Tiny URL了


Hashcode方法也很厲害,但是很容易出現collision. 因為當用戶有個幾萬人以后,很容易出現重復的hashcode。這個時候就操蛋了。

個人比較喜歡這個方法,用random的方法來encode URL。如果這個隨機生成的code已經被用過的話, 我們生成一個新的random 來用。

Decode的話就去找database/hashmap問。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,949評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,766評論 18 399
  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗。 張土汪:刷leetcod...
    土汪閱讀 12,771評論 0 33
  • 丹姐是一個只上四年級半學期的人,沒有高學歷.豐富的知識.經驗,我只是一個平凡的小老百姓一個。 現在整天圍著孩子老公...
    順鑫夢閱讀 528評論 0 2
  • 我有個神奇的備用手機。 我領導笑我傻。 他說多麻煩。用雙卡雙待的手機不就好了。 我說兩個手機的電量是你的doubl...
    顏料筆閱讀 894評論 0 0