这段代码怎么写
如果是1 2 1或者 2 1 2 或者1 2 1 2则输出YES 如果是 1 1 1 2则输出NO 你可以使用以下的Python代码来解决这个问题:def check_pattern(arr):
if len(arr) < 3:
return "NO"
for i in range(len(arr) - 2):
if arr[ i] == 1 and arr == 2 and arr == 1:
return "YES"
elif arr[ i] == 2 and arr == 1 and arr == 2:
return "YES"
if len(arr) > 3 and arr[-3] == 1 and arr[-2] == 2 and arr[-1] == 1 and arr[-4] == 1:
return "YES"
return "NO"
arr =
print(check_pattern(arr))# 输出YES
arr =
print(check_pattern(arr))# 输出NO
这段代码定义了一个函数 check_pattern ,它接受一个数组作为输入,并检查数组中是否存在指定的模式。函数首先检查数组的长度,如果长度小于3,则返回"NO"。然后使用循环遍历数组,查找是否存在指定的模式。如果找到了任何一个模式,就返回"YES"。最后,如果数组长度大于3且最后四个元素符合特定模式,则也返回"YES"。如果没有找到任何模式,则返回"NO"。 下面是一个C++代码示例,用于判断数组是否符合要求。在这个示例中,我们先定义了一个函数isSatisfyCondition来判断数组是否满足条件,然后在main函数中调用这个函数来输出结果。
#include <iostream>
using namespace std;
bool isSatisfyCondition(int arr[], int n) {
// 检查数组是否以 1 2 或者 2 1 交替出现
for (int i = 0; i < n - 2; i++) {
if ((arr == 1 && arr == 2 && arr == 1) ||
(arr == 2 && arr == 1 && arr == 2)) {
return true;
}
}
return false;
}
int main() {
int arr[] = {1, 1, 1, 2};// 这里替换成你的数组
int n = sizeof(arr) / sizeof(arr);
if (isSatisfyCondition(arr, n)) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
return 0;
}
在这个示例中,isSatisfyCondition函数用于检查数组中是否出现了 1 2 1 或者 2 1 2 的组合,如果有则返回true,否则返回false。最后在main函数中根据函数的返回值输出结果。
希望这个代码能够满足你的需求。如果还有其他问题,欢迎随时提问。 sh-5.2$ cat main.c
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
bool check(const char *str) {
if(!strcmp(str, "1 2 1")) return true;
if(!strcmp(str, "2 1 2")) return true;
if(!strcmp(str, "1 2 1 2")) return true;
if(!strcmp(str, "1 1 1 2")) return false;
// What should I do ?
return false; return true;
}
int main(void) {
char buff; fgets(buff, 1024, stdin);
buff = '\0';
puts(check(buff) ? "YES" : "NO");
return 0;
}
sh-5.2$ ./main
1 2 1
YES
sh-5.2$ ./main
2 1 2
YES
sh-5.2$ ./main
1 2 1 2
YES
sh-5.2$ ./main
1 1 1 2
NO
sh-5.2$ ./main
1 2 3 4
NO
sh-5.2$
页:
[1]