GYM Amman 17 J. Spilt the String 模拟,枚举

来源:互联网 发布:淘宝订单编号查询系统 编辑:程序博客网 时间:2024/06/03 19:46
题意:给出字符串s 包含空格.问是否能把s分成若干个区间.满足每个字符串只会落在某个区间,并且每个区间长度都相同.|s|<=1e5.

因为一个字符串不会落在多个区间上 所有分割的位置只能为空格.

枚举区间长度x,判断分割点是否为空格即可O(nlogn).

#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N=2e5+5,mod=1e9+7;char s[N];//3 4 10  11 7bool solve(){    int len=strlen(s+1);    for(int x=2;2*(x-1)<=len;x++)//len =x-1    {        bool flag=true;        int i=x;        while(i<=len)        {            if(s[i]!=' ')            {                flag=false;                break;            }            i+=x;        }        if(flag&&i==len+1)            return true;    }    return false;}int main(){    int T;    cin>>T;    getchar();    while(T--)    {        gets(s+1);        if(solve())            printf("YES\n");        else            printf("NO\n");    }    return 0;}


原创粉丝点击