B - Shuffle Hashing CodeForces - 1278A

B - Shuffle Hashing CodeForces - 1278A

题目链接

思路

这一题利用求前缀和的思想和桶排的桶的思想的就能解决了

分析

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<map>
#include<vector>
#include<queue>
#include<stack>
void fre() { freopen("A.txt","r",stdin); freopen("Ans.txt","w",stdout); }
using namespace std;

const int mxn = 105;
map<int, int> mp;
char ar[mxn], br[mxn];
int cr[mxn][26];

int main()
{
    /* fre(); */
    int t;
    scanf("%d", &t);
    while(t --)
    {
        mp.clear();
        scanf("%s %s", ar, br + 1);       
        int la = strlen(ar);
        int lb = strlen(br + 1);
        for(int i = 0; i < la; i ++)
            mp[ar[i] - 'a'] ++;
        for(int i = 1; i <= lb; i ++)
        {
            for(int j = 0; j < 26; j ++)
                cr[i][j] = cr[i - 1][j];
            cr[i][br[i] - 'a'] ++;
        }

        int flag;
        for(int i = 1; i <= lb; i ++)
        {
            for(int j = 0; j < i; j ++)
            {
                flag = 1;
                for(int k = 0; k < 26; k ++)
                    if(mp[k] != cr[i][k] - cr[j][k])
                    {
                        flag = 0;
                        break;
                    }
                if(flag)
                {
                    printf("YES\n");
                    break;
                }
            }
            if(flag)
                break;
        }
        if(! flag)
            printf("NO\n");
    }

    return 0;
}
原创文章 220 获赞 292 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_34261446/article/details/105619611
今日推荐