Codeforces 96A - Football
题目: A. Football
time limit per test: 2 seconds
memory limit per test: 256 megabytes
input: standard input
output: standard output
Petya loves football very much. One day, as he was watching a football match, he was writing the players’ current positions on a piece of paper. To simplify the situation he depicted it as a string consisting of zeroes and ones. A zero corresponds to players of one team; a one corresponds to players of another team. If there are at least 7 players of some team standing one after another, then the situation is considered dangerous. For example, the situation 00100110111111101 is dangerous and 11110111011101 is not. You are given the current situation. Determine whether it is dangerous or not.
Input
The first input line contains a non-empty string consisting of characters “0” and “1”, which represents players. The length of the string does not exceed 100 characters. There’s at least one player from each team present on the field.
Output
Print “YES” if the situation is dangerous. Otherwise, print “NO”.
Examples
input |
---|
001001 |
output |
NO |
input |
---|
1000000001 |
output |
YES |
思路:
1.用两个指针遍历该字符串,并设立标记变量,标记是否危险,初始为false;
2.在标记为false且后一个指针不为空的情况进行遍历,设前面的指针为p,后面的指针为q,初始p、q指向首地址,若p==q,如果q-p==6,则改变标记为ture,不等于6则q++;如果p和q不相等,p=q,q++;
代码:
#include<iostream>
using namespace std;
int main(){
char c[101];
scanf("%s",c);
const char *p=&c[0];
const char *q=p+1;
bool flag=false;
while(*q!=NULL&&!flag){
if(*q!=*p) p=q;
else if(q-p==6) flag=true;
q++;
}
printf(flag?"YES":"NO");
return 0;
}