CS153/hw6/hw4programs/hashcode.oat

25 lines
590 B
Text
Raw Permalink Normal View History

/* Java string hash function */
/* hash = s[0] * 31 ^ (n - 1) + s[1] * 31 ^(n - 2) + ... + s[n-1]*/
int program(int argc, string[] argv) {
var s = "aa";
var h = hash(s);
print_int(h);
return 0;
}
int hash(string s) {
var int_arr = array_of_string(s);
var length = length_of_string(s);
var hash = 0;
for(var i = 0; i < length; i= i+1;) {
var power = 1;
for(var j = length - i - 1; j > 0; j= j-1;) {
power = power * 31;
}
var char = int_arr[i];
hash = hash + power * char;
}
return hash;
}