Advertisement
Lusien_Lashans

hashes

Apr 23rd, 2017
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function SimpleHash(str) {
  2.     var hash = 0;
  3.  
  4.     for (var i = 0; i < str.length; i++){
  5.         hash += str.charCodeAt(i);
  6.     }
  7.  
  8.     return hash;
  9. }
  10.  
  11. function main() {
  12.  
  13.     WSH.echo('Type string, please')
  14.     var str = WScript.StdIn.ReadLine();
  15.  
  16.     if (str === ''){
  17.         WSH.echo('Input file is empty');
  18.         return;
  19.     }
  20.  
  21.     WSH.echo('Type substring')
  22.     var subStr = WScript.StdIn.ReadLine();
  23.  
  24.     if (subStr === ''){
  25.         WSH.echo('Wrong input substring');
  26.         return;
  27.     }
  28.     var start;
  29.     var end;
  30.     var time;
  31.  
  32.     var collision = 0;
  33.     var strHash = 0;
  34.     var subStrHash = SimpleHash(subStr);
  35.     var arr = new Array;
  36.     var hoho = 0;
  37.  
  38.     for (var i = 0; i < str.length - subStr.length + 1; i++){
  39.         if(i === 0){
  40.             strHash = SimpleHash(str.substr(0, subStr.length));
  41.         }
  42.         else{
  43.             strHash += str.charCodeAt(i + subStr.length - 1) - str.charCodeAt(i - 1);
  44.         }
  45.  
  46.         if (strHash === subStrHash){
  47.             var j = 0;
  48.  
  49.             while(str.charAt(i + j) === subStr.charAt(j)){
  50.                 j++;
  51.  
  52.                 if (j === subStr.length){
  53.                     arr[hoho] = i+1;
  54.                     hoho++;
  55.                     collision -= 1;
  56.                     break;
  57.                 }
  58.             }
  59.  
  60.             collision++;
  61.         }
  62.     }
  63.  
  64.     WSH.echo('Amount of collisions: ' + collision);
  65.     for (i=0; i<arr.length; i++)
  66.         WSH.echo(arr[i]);
  67. }
  68.  
  69. main();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement