簡體   English   中英

如何在gethash javascript function中查找帶有特定字母的字符串

[英]How to find a string with specific letters in gethash javascript function

function getHash( string ) {  
   let h = 7, letters = "acdefhlmnoprstuw";   
   for( var i = 0; i < string.length; i++ ) {  
      h = ( h * 37 + letters.indexOf( string[ i ] ) );  
   }  
   return h;  
}

我的任務是編寫一個代碼來查找包含以下一些字母的字符串:ACDEFHLMNOPRSTUW
這樣 function getHash(THE SEARCHING STRING) 得到的結果是 18794359164。

我沒有給你一些代碼,只是一些提示。

要了解代碼,您已經了解了代碼,而您想要了解的代碼是使用 gunction 獲取一個字符串並從中獲取 hash 值。

例如,以'wonder'為例,得到

19017519751

作為 hash 值。

該值包含一個起始值 7 ( h = 7 ),對於每個字母,它將h乘以37 (該值看起來像是為 37 個不同的字符創建的)並加上letters的索引值。

要得到一個數值的相反數,你需要將一個rest除以37得到一個字母的索引,正好相反,用一個字母給hash加上一個值。

例如取上面的值19017519751除以37得到rest

19017519751 % 37 -> 11  r

現在有了最后一個字母(記住編碼從單詞的開頭到結尾,解碼從結尾開始),你需要得到一個沒有最后一個字母的值。

通過編碼,您將每個最后的總和乘以 37,這在這里也適用,但以相反的方式,您需要一個 integer 值。 只需除以37並取下一個字母的底值。

rest 看起來像這樣:

  513987020 % 37 ->  3  e
   13891541 % 37 ->  2  d
     375447 % 37 ->  8  n
      10147 % 37 ->  9  o
        274 % 37 -> 15  w

最后,您需要進行檢查以停止迭代,並且該值是編碼的第一個值7

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM