Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define ll long long
- using namespace std;
- const int P = 127, M = 1e9 + 7;
- // (a + b) % M = ((a % M) + (b % M)) % M
- int Add(int a, int b) {
- return (a + b) % M;
- }
- // (a + b) % M = ((a % M) * (b % M)) % M
- int mul(int a, int b) {
- return 1ll * a * b % M;
- }
- // (a - b) % M = ??
- int Sub(int a, int b) {
- // TO-Do
- return 0;
- }
- int Hash1(string s) {
- int pow = 1;
- int h = 0;
- for (int i = 0; s[i]; i++) {
- h = Add(h, mul(s[i], pow));
- pow = mul(pow, P);
- }
- return h;
- }
- int Hash2(string s) {
- // TO-DO
- return 0;
- }
- bool compare(string s1, string s2) {
- return Hash1(s1) == Hash1(s2) &&
- Hash2(s1) == Hash2(s2);
- // TO-DO
- }
- int main()
- {
- cout << compare("Hawara", "hawara");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment