在第一个代码中:

  1. 函数judge判断两个子串是否相等的方式为(ha1[lt - len + 1] - ha1[lt - 1] + MOD) % MOD == (ha2[rt + len - 1] - ha2[rt + 1] + MOD) % MOD,而在第二个代码中判断方式为ll l = ((ha1[lt + len - 1] - ha1[lt - 1] * a[len]) % MOD + MOD) % MOD; ll r = ((ha2[rt - len + 1] - ha2[rt + 1] * a[len]) % MOD + MOD) % MOD; return l == r;,两种方式的目的相同,但计算方式不同。
  2. 函数fun的实现方式有所不同,第一个代码中使用的是二分查找,而第二个代码中使用的是二分查找的变种。
  3. 变量名和数组下标的使用方式有所不同,第一个代码中使用的是ltrt表示左右指针,而第二个代码中使用的是ltrt表示左右指针的位置。
  4. 输出结果的方式有所不同,第一个代码中直接使用putchar输出,而第二个代码中将结果存储在数组ans中,最后再输出
帮我对比效果哪不一样#include bitsstdc++h#define frex freopen#x in r stdin freopen#x out w stdout;#define heap priority_queueusing namespace std;typedef long long ll;char buf1 15 p1 = buf p2 = buf;#define getch

原文地址: https://www.cveoy.top/t/topic/izCH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录