2026-07-24:交通信号灯的颜色。用go语言,给定一个整数 timer,表示交通信号灯剩余的秒数。你需要按照以下对应关系判断并返回当前信号灯

网易专栏2周前发布 nxnqh
28 0 0

🤖 AI总结

主题

用Go/Python/C++实现交通信号灯颜色判断函数

摘要

本文用Go、Python、C++实现交通信号灯颜色判断函数,根据剩余秒数返回对应颜色或Invalid。

关键信息

  • 1 根据剩余秒数判断信号灯颜色
  • 2 0秒绿灯,30秒橙灯,31-90秒红灯
  • 3 其他值返回Invalid

2026-07-24:交通信号灯的颜色。用go语言,给定一个整数 timer,表示交通信号灯剩余的秒数。你需要按照以下对应关系判断并返回当前信号灯的颜色:

剩余 0 秒时,信号灯为 “Green”(绿灯)。

剩余恰好 30 秒时,信号灯为 “Orange”(橙灯/黄灯)。

剩余秒数在大于 30 且小于等于 90 的范围内(即 31 到 90 秒之间)时,信号灯为 “Red”(红灯)。

如果剩余秒数不在上述任何一种情况中(例如负数、129 秒、3190 以外的正数等),则视为无效输入,返回 “Invalid”。

0 <= timer <= 1000。

输入: timer = 60。

输出: “Red”。

解释:

因为 timer = 60,且 30 < timer <= 90,所以答案是 “Red”。

题目来自力扣3894。

过程描述 1. 函数定义与输入

定义函数trafficSignal,接收一个整数timer,表示信号灯剩余的秒数。题目限定timer范围在[0, 1000],但函数本身会处理所有整数输入。

2. 第一个判断:是否绿灯

进入函数后,首先检查timer是否等于0

• 若等于0:剩余时间为 0 秒,对应绿灯,函数直接返回字符串"Green"并结束。

  • • 若不等于:跳过此分支,继续往下。

    3. 第二个判断:是否橙灯

    如果timer不等于0,接着判断timer是否等于30

    • 若等于30:剩余恰好 30 秒,对应橙灯(黄灯),返回"Orange"

  • • 若不等于:继续后续判断。

    4. 第三个判断:是否红灯

    前两个条件均不满足时,检查timer是否满足大于 30 且小于等于 90(即30 < timer <= 90,数学上等价于 31 ≤ timer ≤ 90)。

    • 若满足:剩余时间落在红灯区间,返回"Red"

  • • 若不满足:说明timer属于无效范围,执行最后的返回。

    5. 无效情况处理

    以上三个条件都不成立时(例如timer为 129、911000,或其它可能的非法值),函数执行最后的return "Invalid",表示输入无效。

    6.main函数执行流程

    • 定义变量timer := 60

  • • 调用trafficSignal(60),将 60 作为参数传入。

  • • 函数内部按顺序判断:

  • 60 == 0?否。

  • 60 == 30?否。

  • 30 < 60 <= 90?是,因为 60 大于 30 且小于等于 90,满足红灯条件。

  • • 返回字符串"Red"

  • main接收返回值存入result,并通过fmt.Println打印输出"Red"

    复杂度分析

    时间复杂度
    函数只包含三个独立的if判断,属于常数次比较操作。无论timer的值为多少,执行路径长度固定,无循环或递归。因此总时间复杂度为O(1)

  • 额外空间复杂度
    函数仅使用参数timer(整型)和返回的字符串字面量,没有动态分配内存、没有创建辅助数据结构,也没有递归调用栈的额外开销。所有字符串常量在编译时已确定,不随输入变化。因此总额外空间复杂度为O(1)

    Go完整代码如下:

    package main

    import (
    "fmt"
    )

    func trafficSignal(timer int) string {
    if timer == 0 {
    return "Green"
    }
    if timer == 30 {
    return "Orange"
    }
    if 30 < timer && timer <= 90 {
    return "Red"
    }
    return "Invalid"
    }

    func main() {
    timer := 60
    result := trafficSignal(timer)
    fmt.Println(result)
    }

    2026-07-24:交通信号灯的颜色。用go语言,给定一个整数 timer,表示交通信号灯剩余的秒数。你需要按照以下对应关系判断并返回当前信号灯

    Python完整代码如下:

    # -*-coding:utf-8-*-

    def traffic_signal(timer: int) -> str:
    if timer == 0:
    return "Green"
    if timer == 30:
    return "Orange"
    if 30 < timer <= 90:
    return "Red"
    return "Invalid"

    if __name__ == "__main__":
    timer = 60
    result = traffic_signal(timer)
    print(result)

    2026-07-24:交通信号灯的颜色。用go语言,给定一个整数 timer,表示交通信号灯剩余的秒数。你需要按照以下对应关系判断并返回当前信号灯

    C++完整代码如下:

      
    


    std::string trafficSignal(int timer) {
    if (timer == 0) {
    return "Green";
    }
    if (timer == 30) {
    return "Orange";
    }
    if (timer > 30 && timer <= 90) {
    return "Red";
    }
    return "Invalid";
    }

    int main() {
    int timer = 60;
    std::string result = trafficSignal(timer);
    std::cout << result << std::endl;
    return 0;
    }

    2026-07-24:交通信号灯的颜色。用go语言,给定一个整数 timer,表示交通信号灯剩余的秒数。你需要按照以下对应关系判断并返回当前信号灯

    我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。

    © 版权声明

    相关文章