鱼C论坛

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

这段代码怎么写

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

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

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

x
如果是1 2 1或者 2 1 2 或者1 2 1 2则输出YES 如果是 1 1 1 2则输出NO
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-12 22:41:34 | 显示全部楼层
你可以使用以下的Python代码来解决这个问题:
def check_pattern(arr):
    if len(arr) < 3:
        return "NO"
    for i in range(len(arr) - 2):
        if arr[ i] == 1 and arr[i+1] == 2 and arr[i+2] == 1:
            return "YES"
        elif arr[ i] == 2 and arr[i+1] == 1 and arr[i+2] == 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 = [1, 2, 1, 2]
print(check_pattern(arr))  # 输出YES
arr = [1, 1, 1, 2]
print(check_pattern(arr))  # 输出NO

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

使用道具 举报

发表于 2023-11-12 22:42:46 | 显示全部楼层
下面是一个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[i] == 1 && arr[i + 1] == 2 && arr[i + 2] == 1) ||            (arr[i] == 2 && arr[i + 1] == 1 && arr[i + 2] == 2)) {            return true;        }    }    return false;}int main() {    int arr[] = {1, 1, 1, 2};  // 这里替换成你的数组    int n = sizeof(arr) / sizeof(arr[0]);    if (isSatisfyCondition(arr, n)) {        cout << "YES" << endl;    } else {        cout << "NO" << endl;    }    return 0;}
在这个示例中,isSatisfyCondition函数用于检查数组中是否出现了 1 2 1 或者 2 1 2 的组合,如果有则返回true,否则返回false。最后在main函数中根据函数的返回值输出结果。

希望这个代码能够满足你的需求。如果还有其他问题,欢迎随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-12 23:56:37 | 显示全部楼层
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[1024]; fgets(buff, 1024, stdin);
    buff[strlen(buff) - 1] = '\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$
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 19:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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