V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
beginor
V2EX  ›  程序员

这道题目面试过这么多人,第一次见这么答的 😂

  •  
  •   beginor ·
    beginor · 1 天前 · 11541 次点击

    这道题目面试过这么多人,第一次见这么答的 😂

    这道题目面试过这么多人,第一次见这么答的

    小伙子看起来挺醒目的,不像是装的,憋了半天写出的答案,作何感想?

    108 条回复    2025-03-26 21:55:05 +08:00
    1  2  
    wuzhi1234
        1
    wuzhi1234  
       1 天前 via iPhone   ❤️ 24
    简洁明了,建议直接入职
    xiaowoli
        2
    xiaowoli  
       1 天前
    哈哈哈哈哈 尽然还不是 ===
    ezerear
        3
    ezerear  
       1 天前
    你就说对不对吧😂
    kris0502
        4
    kris0502  
       1 天前
    没毛病,完全按照题目作答
    nice2cu
        5
    nice2cu  
       1 天前
    可能紧张理解错了吧 ,或者加一句 传入任意参数 进行格式化输出
    evan1
        6
    evan1  
       1 天前   ❤️ 37
    代码可读性高、扩展性高、可维护性强。
    paopjian
        7
    paopjian  
       1 天前   ❤️ 1
    骗分导论精髓啊, 先把样例打了, 其他过不过再说
    zpaeng
        8
    zpaeng  
       1 天前
    直接入职
    longzcxx
        9
    longzcxx  
       1 天前   ❤️ 5
    面向测试用例编程
    Cooky
        10
    Cooky  
       1 天前   ❤️ 4
    建议入职华为
    wyntalgeer
        11
    wyntalgeer  
       1 天前   ❤️ 5
    本日最佳!最喜欢看吊面试题的人,这种烂题工作中用得到?
    me1onsoda
        12
    me1onsoda  
       1 天前
    不能说 0 分
    402124773
        13
    402124773  
       1 天前   ❤️ 1
    是不是测试用例都通过了,是不是 o ( 1 )的时间复杂度
    ninjashixuan
        14
    ninjashixuan  
       1 天前   ❤️ 10
    过拟合(不是
    MozzieW
        15
    MozzieW  
       1 天前   ❤️ 36
    测试用例全过了,出问题是因为产品逻辑定义不清晰
    chairuosen
        16
    chairuosen  
       1 天前
    人肉打表法
    hefish
        17
    hefish  
       1 天前
    没毛病。满分。
    yaocai321
        18
    yaocai321  
       1 天前   ❤️ 2
    @wyntalgeer #11 一时不知道你是在串还是认真的。 先不说这个题烂不烂,但是这种时间 format 应该很常见吧
    kandaakihito
        19
    kandaakihito  
       1 天前
    力扣刷排位基操
    lqy2575395
        20
    lqy2575395  
       1 天前
    就问你性能强不强吧
    FrankAdler
        21
    FrankAdler  
       1 天前 via Android   ❤️ 1
    想看看 java boy 写的几百上千行的实现方式
    wu00
        22
    wu00  
       1 天前   ❤️ 5
    一看就是高手,招进来怼产品的好帮手!
    0 怎么输出
    60 怎么输出
    3600 怎么输出
    3601 怎么输出
    lyxxxh2
        23
    lyxxxh2  
       1 天前
    我之前也遇到过类似的面试者:
    写个函数,模仿 js 的 find 。
    如 js 的:
    const a = [{'id':1},{'id':3},]
    a.findIndex(item => item.id === 3)
    // 1

    结果:
    ```
    function find($arrs){
    foreach($arrs => $index => arr){
    if($arr['type'] === 3){
    return $index
    }
    }
    }
    ```
    跟他说我还可能有个 type,又在他 foreach 里面加个 type 。
    我又去菜鸟教程截屏给他:(微信先面试的)


    后续忘记了,由于前面几个问题,加我感觉他闭包都不晓得,我心里已经把他标记淘汰了。
    他说我态度不行,我也怼回去了 ...
    aikilan
        24
    aikilan  
       1 天前   ❤️ 1
    是不是 O(1)吧你就说
    bzw875
        25
    bzw875  
       1 天前
    用机器生成所有数字,用空间换时间。果然新头脑就是有新思路
    lasuar
        26
    lasuar  
       1 天前
    再满足题目要求的情况下,做到了输出正确,性能第一。
    Vegetable
        27
    Vegetable  
       1 天前
    答案正确,没用===,不合格。
    flyingghost
        28
    flyingghost  
       1 天前
    start = now()
    sleep(input)
    end = now()
    print(end - start)

    时间复杂度 O(n),此处 O(n)的意思是 n 是多少复杂度就是多少。
    liberty1900
        29
    liberty1900  
       1 天前 via iPhone   ❤️ 1
    最后一个 case 少了一个“小”字
    takanashisakura
        30
    takanashisakura  
       1 天前
    @flyingghost #28 深得 sleep 排序精髓
    kneo
        31
    kneo  
       1 天前
    有点像文心一言的答案。
    tonytonychopper
        32
    tonytonychopper  
       1 天前
    function formatTime(num: number) {
    const hour = Math.floor(num / 3600);
    const min = Math.floor((num - hour * 3600) / 60);
    const second = num - hour * 3600 - min * 60;
    return [
    { unit: '小时', value: hour },
    { unit: '分', value: min },
    { unit: '秒', value: second },
    ]
    .map(config => (config.value ? `${config.value}${config.unit}` : ''))
    .join('');
    }
    pvnk1u
        33
    pvnk1u  
       1 天前
    面向结果编程,你就说对不对吧
    xueyuehua
        34
    xueyuehua  
       1 天前   ❤️ 1
    是不是先对 3600 取模,余数在对 60 取模就行了
    moefishtang
        35
    moefishtang  
       1 天前 via Android
    面向测试用例编程😂时间复杂度 O(1),你就说运行得快不快吧
    levelworm
        36
    levelworm  
       1 天前 via Android
    @xueyuehua 输出的时候我估摸着还要看看分和时是不是零。
    shawnsh
        37
    shawnsh  
       1 天前 via Android   ❤️ 1
    MVP
    jqknono
        38
    jqknono  
       1 天前   ❤️ 5
    可以先申请一个 10w 字节的数组, 然后
    array[1]="1 秒"
    array[61]="1 分 1 秒"
    array[3661]="1 小时分 1 秒"

    这样以空间换时间, 使性能更优.
    flyqie
        39
    flyqie  
       1 天前 via Android
    @jqknono #38

    可扩展性极其优秀!
    EscYezi
        40
    EscYezi  
       1 天前 via iPhone
    写一个 http 调用 deepseek api ,然后把题干写提示词里🤣
    night98
        41
    night98  
       23 小时 46 分钟前
    if n < 60 out n
    if n < 3600 out n % 60 xxxx
    else out xxxx
    rekulas
        42
    rekulas  
       23 小时 39 分钟前   ❤️ 6
    这题太简单
    众所周知,闹钟是每秒滴答一次的,所以正确答案是这样
    ```
    function gettime(n) {
    const t = [0, 0, 0];
    const tick = () => {
    if (t[2]==60) {t[1]++;t[2]=0;}
    if (t[1]==60) {t[0]++;t[1]=0;}
    }
    for(let i=0;i<n;i++) {
    t[2]++;
    tick();
    }
    tick()
    return [t[0],[t[1],t[2]].join('分')].join('小时')
    }
    ```
    lts9165
        43
    lts9165  
       23 小时 14 分钟前
    @rekulas 很棒
    kk2syc
        44
    kk2syc  
       21 小时 30 分钟前
    离开 IDE 突然让我写 format 确实还得想半天,tab 按烂了
    ZRS
        45
    ZRS  
       21 小时 8 分钟前 via iPhone
    打表很熟练
    kokerkov
        46
    kokerkov  
       15 小时 59 分钟前
    你就说跑起来结果对不对吧。狗头
    kokerkov
        47
    kokerkov  
       15 小时 57 分钟前
    @MozzieW 有理有据,令人信服
    tyrantZhao
        48
    tyrantZhao  
       15 小时 24 分钟前
    打表大法好。
    superkkk
        49
    superkkk  
       15 小时 23 分钟前 via iPhone
    @wyntalgeer 我们的产品里面真有这种小功能,后端传给前端时间戳,前端转成日期格式
    vikaptain
        50
    vikaptain  
       14 小时 59 分钟前
    面向结果编程
    suofeiya
        51
    suofeiya  
       14 小时 59 分钟前
    你就说结果对不对吧.
    liqingyou2093
        52
    liqingyou2093  
       14 小时 58 分钟前
    小伙子挺不错的,if else 很熟练
    sir283
        53
    sir283  
       14 小时 57 分钟前 via Android
    @wyntalgeer 这东西用的挺多的,你应该只是画个界面的,不用处理逻辑跟线程,所以你不需要用。
    987N
        54
    987N  
       14 小时 55 分钟前
    你就说结果对不对吧.
    luzemin
        55
    luzemin  
       14 小时 53 分钟前
    至少愿意尝试一把
    wuxiaolong89
        56
    wuxiaolong89  
       14 小时 50 分钟前
    你就说对不对吧
    orlando
        57
    orlando  
       14 小时 47 分钟前
    面向 LeetCode 骗分编程
    SevenElevenZ
        58
    SevenElevenZ  
       14 小时 46 分钟前
    可塑性强! 建议直接入职
    miku999
        59
    miku999  
       14 小时 45 分钟前
    3661 的错了, 不通过
    chengzigua
        60
    chengzigua  
       14 小时 42 分钟前
    面向结果式编程
    mangwen
        61
    mangwen  
       14 小时 34 分钟前
    直接入职,绝了
    18500592934
        62
    18500592934  
       14 小时 29 分钟前
    这完全正确啊!毕竟题目只是说写一个函数,可没有其他要求了。
    lowly
        63
    lowly  
       14 小时 26 分钟前
    @wyntalgeer 这个在实际工作中运用的还少?
    不论 to C 还是 to B 项目,只需要有时间,都倾向与当前时间进行比较吧
    几秒前、几分钟前、几小时前,几天前,时间差超出 2 两天或 3 天,一律按 m-Y-d 格式来输出展示
    这种需求不论产品还是需求方都会这么要求
    2218675712
        64
    2218675712  
       14 小时 23 分钟前
    kakakakaka8889
        65
    kakakakaka8889  
       14 小时 23 分钟前
    @yaocai321 直接 dayjs 完事
    kakakakaka8889
        66
    kakakakaka8889  
       14 小时 23 分钟前
    @lowly dayjs 就可以搞定了
    kakakakaka8889
        67
    kakakakaka8889  
       14 小时 22 分钟前
    @superkkk 不用 dayjs ?
    justfindu
        68
    justfindu  
       14 小时 22 分钟前
    很明确不是吗
    lowly
        69
    lowly  
       14 小时 19 分钟前
    @kakakakaka8889 他的回答不是用什么方法的问题,而是说这个面试题没意思,实际工作中并不会有这样的需求
    superkkk
        70
    superkkk  
       14 小时 16 分钟前
    @kakakakaka8889 我是测试,不知道他们用什么实现的。
    LZWDRWEB
        71
    LZWDRWEB  
       14 小时 14 分钟前
    面向机试开发
    Alias4ck
        72
    Alias4ck  
       14 小时 14 分钟前
    通过了 3 个用例 没毛病呀
    hnliuzesen
        73
    hnliuzesen  
       14 小时 10 分钟前
    跑表,是 ACM 选手
    semxau789
        74
    semxau789  
       13 小时 51 分钟前
    @Cooky 你是懂华为的
    nzynzynzy
        75
    nzynzynzy  
       13 小时 46 分钟前
    @Cooky #10 {山海经名字}计算器,运算逻辑上比友商对 CPU 性能的要求降低 99%
    jjwjiang
        76
    jjwjiang  
       13 小时 38 分钟前
    个人觉得应该直接 sleep 对应的秒数,然后用当前时间减去初始时间就能轻松得出对应的时分秒了,节省了大量复杂度😁
    juzisang
        77
    juzisang  
       13 小时 36 分钟前
    性能最优,测试用例全过,典型的 TDD 编程模式
    nenseso
        78
    nenseso  
       13 小时 29 分钟前
    你就说过没过用例吧
    ZztGqk
        79
    ZztGqk  
       13 小时 27 分钟前 via iPhone
    没有深度思考
    lychee930224
        80
    lychee930224  
       13 小时 18 分钟前
    老 TDD 了
    xzylzz
        81
    xzylzz  
       12 小时 20 分钟前
    @kakakakaka8889 #66 如果临时用一下,两分钟就能写完的东西有什么必要引入一个库?
    simo
        82
    simo  
       12 小时 20 分钟前
    只关注你的头像了,比 v2 的好看
    richChou
        83
    richChou  
       12 小时 17 分钟前
    @evan1 应该说 代码可读性、扩展性、可维护性极强
    richChou
        84
    richChou  
       12 小时 8 分钟前
    @flyingghost 哈哈哈哈哈,测试会上来跟你拼了。
    sakura1988
        85
    sakura1988  
       11 小时 59 分钟前   ❤️ 1
    题干应当给出具体的格式化规则,而不是给几个样例。单从题干来说,请问 86400 、604801 、31536001 、123456789 应该输出什么?
    题干本身极其不严谨,答题人直接打表没什么问题。
    gzhjj
        86
    gzhjj  
       11 小时 57 分钟前
    就为了看看他能走多远,必须招进来
    kkbear
        87
    kkbear  
       11 小时 41 分钟前   ❤️ 2
    这明显就是低智 AI 产品的答案啊
    leonshaw
        88
    leonshaw  
       11 小时 26 分钟前
    然而最后一个 case 挂了,「 1 小时」写成了「 1 时」
    129duckflew
        89
    129duckflew  
       11 小时 22 分钟前
    这人绝对是打过 ACM 的 打表选手
    EndlessMemory
        90
    EndlessMemory  
       10 小时 42 分钟前
    哈哈哈
    adoal
        91
    adoal  
       10 小时 29 分钟前
    由于题干不严谨,所以直接按用例打表没问题。面试官给他直接挂掉面试更没问题。
    sigma65535
        92
    sigma65535  
       10 小时 22 分钟前
    直接 CTO,走起
    Deming19
        93
    Deming19  
       9 小时 34 分钟前
    public string FormatTime(int num)
    {
    if (num < 0)
    throw new ArgumentException("分钟数不能为负数", nameof(num));

    TimeSpan duration = TimeSpan.FromMinutes(num);
    int totalHours = (int)duration.TotalHours; // 计算总小时数(含超过 24 小时的部分)

    return $"{totalHours}小时{duration.Minutes}分{duration.Seconds}秒";
    }
    sparklee
        94
    sparklee  
       8 小时 40 分钟前
    fun convertToString(
    value: Int,
    units: Array<String> = arrayOf("小时", "分钟", "秒"),
    rates: Array<Int> = arrayOf(60 * 60, 60, 1)
    ): String {
    var _str = ""
    var _temp = value
    rates.forEachIndexed { index, v ->
    val t = _temp / v
    if (t > 0) {
    _str += (t.toString() + units[index])
    _temp %= v
    }
    }
    return _str
    }
    lesismal
        95
    lesismal  
       8 小时 40 分钟前
    题目挺不错的!
    答案挺解压的!

    生活就是应该这个样子!
    lijilin92
        96
    lijilin92  
       8 小时 25 分钟前
    快就完事了
    RoccoShi
        97
    RoccoShi  
       8 小时 5 分钟前
    小时没打对
    jiaqili
        98
    jiaqili  
       7 小时 45 分钟前
    能用吗?我就问你能不能用?(狗头
    mmrpeng
        99
    mmrpeng  
       7 小时 4 分钟前
    符号普通人的思考过程
    def format_data(data):
    m = 60
    h = 60*m
    d = 24*h
    md = 30*d
    y = 12*md
    format_str = ""
    if(data < 0):
    return
    y_ = data // y
    if(y_):
    data = data - y_ * y
    format_str+="%d%s" % (y_, "年")
    md_ = data // md
    if(md_):
    data = data - md_ * md
    format_str+="%d%s" % (md_, "月")
    d_ = data // d
    if(d_):
    data = data - d_ * d
    format_str+="%d%s" % (d_, "日")
    h_ = data // h
    if(h_):
    data = data - h_ * h
    format_str+="%d%s" % (h_, "时")
    m_ = data // m
    if(m_):
    data = data - m_ * m
    format_str+="%d%s" % (m_, "分")

    s_ = data % m
    format_str+="%d%s" % (s_, "秒")
    print(format_str)
    dp
        100
    dp  
       7 小时 0 分钟前
    没有毛病 满足需求
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2517 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 15:53 · PVG 23:53 · LAX 08:53 · JFK 11:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.