全部评论 6

  • 看到大家都写了,我也口糊一个吧(
    用哈希表(就是桶)记录数 ii 有没有出现在 TiT_i 内(hash[t[i]] = 1
    然后再枚举 SiS_i,只要看 SiS_i 后三位有没有在哈希表里出现过,即 hash[s[i] % 1000] 的值是不是 1 即可。时间复杂度 O(N+M)O(N+M)

    2天前 来自 广东

    0
  • set<string>存一下Ti是否出现过,然后枚举所有S,截取后三个字符g,使用set.count(g)==1判断是否在set里就行。时间 O((n+m)logm)O((n+m) \log m)

    3天前 来自 北京

    0
  • 我的代码:

    #include <iostream>
    #include <vector>
    #include <string>
    using namespace std;
    int main() {
        int N, M;
        cin >> N >> M;
        vector<string> S(N);
        vector<string> T(M);
        for (int i = 0; i < N; ++i) {
            cin >> S[i];
        }
        for (int i = 0; i < M; ++i) {
            cin >> T[i];
        }
        int count = 0;
        for (int i = 0; i < N; ++i) {
            string lastThree = S[i].substr(3, 3);
            for (int j = 0; j < M; ++j) {
                if (lastThree == T[j]) {
                    count++;
                    break;
                }
            }
        }
        cout << count;
        return 0;
    }
    
    

    3天前 来自 浙江

    0
  • nb

    3天前 来自 浙江

    0
  • 给伞哥你真敢啊

    3天前 来自 浙江

    0
  • 哇塞

    3天前 来自 浙江

    0

热门讨论