求求求求求求求求求求求求求求求求助
  • 板块灌水区
  • 楼主xmc1027wenti
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/10/1 12:02
  • 上次更新2024/10/1 15:38:12
查看原帖
求求求求求求求求求求求求求求求求助
1101630
xmc1027wenti楼主2024/10/1 12:02

题:

05-ZZ04-09-格雷码的判定

题目描述

格雷码(Gray code)是一种特殊的n位二进制串排列法,它要求相邻的两个二进制串间恰好有一位不同,特别地,第一个串与最后一个串也算作相邻。

例如,0000,0001,0011,0010,0110,0111,0101,0100就是4位的二进制格雷码。

在本题中,输入一组n位的二进制串,判定是否是格雷码。

输入格式

输入数据第一行为正整数n,表示二进制串的个数,n≤100。

第二行有n个二进制串,用空格隔开。测试数据保证每个二进制串的长度相同且不超过5。

输出格式

如果输入的n个二进制串是格雷码,输出yes;否则输出no。

样例 #1

样例输入 #1

8
0000 0001 0011 0010 0110 0111 0101 0100

样例输出 #1

yes

代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    string s;
    cin>>n;
    int f=1; 
    for(int i=0;i<n;i++){
    	cin>>s[i];
	}
    for(int i=0;i<n;i++){
    	if(s[i]!=s[i+1] and s[n-1]!=s[0])
    		f=0;
		else
			f=1;
	}
	if(f==0){
		cout<<"yes";
	}
	else{
		cout<<"no";
	}
    return 0;
}
2024/10/1 12:02
加载中...