2 条题解

  • 0
    @ 2024-12-14 17:46:41

    感谢楼上题解,不过我认为可以不用转为int再放到数组里面,可以直接减去字符a后变为0-25然后再计算频率会更清楚一点,然后就是这个编辑器是markdown格式的,可以加代码块,不加代码块直接发出来会看的很头疼。总结:感谢楼上题解[花]

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int T;
        cin>>T;
        int Q;
        string s;
        for(int i=1; i<=T; i++)
        {
            cin>>s;
    //		s是要匹配的字符串
            cin>>Q;
            string zi;
            int len2 = s.size();
            for(int j=1; j<=Q; j++)
            {
                cin>>zi;
                int len = zi.size();
                int std[27]={0};
                for(int k=0; k<len; k++)
                {
                    std[zi[k] - 'a']++;
                }
                int ans=0;
                for(int k=0; k<len2 - len + 1; k++)
                {
                    int jd[27]={0};
                    string judge=s.substr(k,len);
                    for(int h=0; h<len; h++)
                    {
                        jd[judge[h] - 'a']++;
                    }
                    int flag = 1;
                    for (int h = 0; h <= 26; h ++)
                    {
                        if (jd[h] != std[h])
                        {
                            flag = 0;
                        }
                    }
                    if (flag == 1) ans++;
                }
                cout<<ans<<endl;
            }
        }
        return 0;
    }
    

    信息

    ID
    196
    时间
    4000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    593
    已通过
    72
    上传者