POJ3096字符串处理

时间:2023-01-07 11:35:54

http://poj.org/problem?id=3096

题意:就是给一个字符串。例如ZGBG,先是不隔的ZG,GB,BG,没有相同的,然后是隔一个ZB,GG,没有相同的,然后是隔两个ZG,没有相同的。所以是surprising.如果有相同的,就NOT surprising.

关键:其实就是两个for循环可以得到所有的对象,再两个for循环比较所有的对象,可得。是个水题但刚开始看半天题意没理解,o(╯□╰)o......

POJ3096字符串处理POJ3096字符串处理
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
char a[100];
int main()
{
    int n;
    while(scanf("%s",&a)!=EOF)
    {
        if(a[0]=='*')break;
        n=strlen(a);
        int flag=0;
        for(int j=1;j<=n-1;j++)
        {
            for(int i=0;i+j<n;i++)
            {
                for(int k=0;k<n-j-1;k++)
                {
                    for(int x=1;x<=n-j-k-1;x++)
                    {
                        if(a[i]==a[i+x]&&a[i+j]==a[i+j+x])
                        {
                            flag=1;
                            break;
                        }
                    }
                }
            }
        }
        printf("%s is ",a);
        if(flag)printf("NOT ");
        printf("surprising.\n");
    }
    return 0;
}
View Code