unsigned long hashBernsteinFunction (string str) { unsigned long hash = 5381; for (auto c : str) { hash = (hash << 5) + hash + c; } cout << hash << endl; return hash; }