Mahmoud_Hawara

Hash Function

Nov 18th, 2025
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.81 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. using namespace std;
  4.  
  5. const int P = 127, M = 1e9 + 7;
  6.  
  7. // (a + b) % M = ((a % M) + (b % M)) % M
  8. int Add(int a, int b) {
  9.     return (a + b) % M;
  10. }
  11.  
  12. // (a + b) % M = ((a % M) * (b % M)) % M
  13. int mul(int a, int b) {
  14.     return 1ll * a * b % M;
  15. }
  16.  
  17. // (a - b) % M = ??
  18. int Sub(int a, int b) {
  19.     // TO-Do
  20.     return 0;
  21. }
  22.  
  23. int Hash1(string s) {
  24.     int pow = 1;
  25.     int h = 0;
  26.     for (int i = 0; s[i]; i++) {
  27.         h = Add(h, mul(s[i], pow));
  28.         pow = mul(pow, P);
  29.     }
  30.     return h;
  31. }
  32.  
  33. int Hash2(string s) {
  34.     // TO-DO
  35.     return 0;
  36. }
  37.  
  38. bool compare(string s1, string s2) {
  39.     return Hash1(s1) == Hash1(s2) &&
  40.            Hash2(s1) == Hash2(s2);
  41.     // TO-DO
  42. }
  43.  
  44. int main()
  45. {
  46.     cout << compare("Hawara", "hawara");
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment