鱼C论坛

 找回密码
 立即注册
查看: 1472|回复: 3

这段代码怎么写

[复制链接]
发表于 2023-11-12 22:41:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如果是1 2 1或者 2 1 2 或者1 2 1 2则输出YES 如果是 1 1 1 2则输出NO
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-11-12 22:41:34 | 显示全部楼层
你可以使用以下的Python代码来解决这个问题:

  1. def check_pattern(arr):
  2.     if len(arr) < 3:
  3.         return "NO"
  4.     for i in range(len(arr) - 2):
  5.         if arr[ i] == 1 and arr[i+1] == 2 and arr[i+2] == 1:
  6.             return "YES"
  7.         elif arr[ i] == 2 and arr[i+1] == 1 and arr[i+2] == 2:
  8.             return "YES"
  9.     if len(arr) > 3 and arr[-3] == 1 and arr[-2] == 2 and arr[-1] == 1 and arr[-4] == 1:
  10.         return "YES"
  11.     return "NO"

  12. arr = [1, 2, 1, 2]
  13. print(check_pattern(arr))  # 输出YES
  14. arr = [1, 1, 1, 2]
  15. print(check_pattern(arr))  # 输出NO
复制代码


这段代码定义了一个函数 check_pattern ,它接受一个数组作为输入,并检查数组中是否存在指定的模式。函数首先检查数组的长度,如果长度小于3,则返回"NO"。然后使用循环遍历数组,查找是否存在指定的模式。如果找到了任何一个模式,就返回"YES"。最后,如果数组长度大于3且最后四个元素符合特定模式,则也返回"YES"。如果没有找到任何模式,则返回"NO"。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-12 22:42:46 | 显示全部楼层
下面是一个C++代码示例,用于判断数组是否符合要求。在这个示例中,我们先定义了一个函数isSatisfyCondition来判断数组是否满足条件,然后在main函数中调用这个函数来输出结果。
  1. #include <iostream>
  2. using namespace std;
  3. bool isSatisfyCondition(int arr[], int n) {
  4.     // 检查数组是否以 1 2 或者 2 1 交替出现
  5.     for (int i = 0; i < n - 2; i++) {
  6.         if ((arr[i] == 1 && arr[i + 1] == 2 && arr[i + 2] == 1) ||
  7.             (arr[i] == 2 && arr[i + 1] == 1 && arr[i + 2] == 2)) {
  8.             return true;
  9.         }
  10.     }
  11.     return false;
  12. }
  13. int main() {
  14.     int arr[] = {1, 1, 1, 2};  // 这里替换成你的数组
  15.     int n = sizeof(arr) / sizeof(arr[0]);
  16.     if (isSatisfyCondition(arr, n)) {
  17.         cout << "YES" << endl;
  18.     } else {
  19.         cout << "NO" << endl;
  20.     }
  21.     return 0;
  22. }
复制代码

在这个示例中,isSatisfyCondition函数用于检查数组中是否出现了 1 2 1 或者 2 1 2 的组合,如果有则返回true,否则返回false。最后在main函数中根据函数的返回值输出结果。

希望这个代码能够满足你的需求。如果还有其他问题,欢迎随时提问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-12 23:56:37 | 显示全部楼层
  1. sh-5.2$ cat main.c
  2. #include <stdio.h>
  3. #include <stdbool.h>
  4. #include <string.h>

  5. bool check(const char *str) {
  6.     if(!strcmp(str, "1 2 1")) return true;
  7.     if(!strcmp(str, "2 1 2")) return true;
  8.     if(!strcmp(str, "1 2 1 2")) return true;
  9.     if(!strcmp(str, "1 1 1 2")) return false;

  10.     // What should I do ?
  11.     return false; return true;
  12. }

  13. int main(void) {
  14.     char buff[1024]; fgets(buff, 1024, stdin);
  15.     buff[strlen(buff) - 1] = '\0';
  16.     puts(check(buff) ? "YES" : "NO");
  17.     return 0;
  18. }
  19. sh-5.2$ ./main
  20. 1 2 1
  21. YES
  22. sh-5.2$ ./main
  23. 2 1 2
  24. YES
  25. sh-5.2$ ./main
  26. 1 2 1 2
  27. YES
  28. sh-5.2$ ./main
  29. 1 1 1 2
  30. NO
  31. sh-5.2$ ./main
  32. 1 2 3 4
  33. NO
  34. sh-5.2$
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-21 14:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表