首页 > 其他 > 详细

UVALive 6320

时间:2015-08-02 13:19:58      阅读:549      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!