码迷,mamicode.com
首页 > 其他好文 > 详细

UVALive 6320

时间:2015-08-02 13:20:57      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:

.............先让我哭一会.......

因为样例三.... 没敢敲...然后确实是样例错了...然后...上次比赛刚做过的一道类似的题...URAL 1941...大水题啊......悔青了....哭瞎了...比赛不只是智力和实力的比拼啊......aaa...

同样的给你两个字符串.问你第二个是不是第一个字串.所谓字串,这里是说字母个数完全相同两部分就可以了。

技术分享
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;

char str1[100010], str2[100010];
int num[100010], num2[100010];

int main()
{
    int t;
    cin >> t;
    while(t--)
    {
        memset(num2, 0, sizeof(num2));
        memset(num, 0, sizeof(num));
        cin >> str1;
        int len = strlen(str1);
        for (int i=0; i<len; ++i)
        {
            num[i] = str1[i] - a;
        }
        cin >> str2;
        int len2 = strlen(str2);
        for (int i=0; i<len2; ++i)
        {
            int temp = str2[i] - a;
            num2[temp]++;
        }
        int st = 0;
        bool flag = false;
        for (int i=0; i<len; ++i)
        {
            num2[num[i]]--;
            while(num2[num[i]] < 0)
            {
                num2[num[st]]++;
                st++;
            }
            if (i-st+1 == len2)
            {
                flag = true;
                break;
            }
        }
        if (flag)
            cout << "YES\n";
        else cout << "NO\n";
    }
    returl 0;
}
LOoK

 

UVALive 6320

标签:

原文地址:http://www.cnblogs.com/icode-girl/p/4695511.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!