网易首页 > 网易号 > 正文 申请入驻

2026-10-11:统计起止时间经过的秒数。用go语言,输入两个合法的字符串,分别代表起始时间和结束时间,格式固定为“小时:分钟:秒”。 目

0
分享至

2026-10-11:统计起止时间经过的秒数。用go语言,输入两个合法的字符串,分别代表起始时间和结束时间,格式固定为“小时:分钟:秒”。

目标是计算这两个时间点之间相差的总秒数。

需要注意,计算区间包含起始和结束这两个时间点本身。

startTime.length == 8。

endTime.length == 8。

startTime 和 endTime 均为格式 "HH:MM:SS" 的有效时间。

00 <= HH <= 23。

00 <= MM <= 59。

00 <= SS <= 59。

endTime 不早于 startTime。

输入: startTime = "12:34:56", endTime = "13:00:00"。

输出: 1504。

解释:

endTime 比 startTime 晚 25 分 4 秒,共计 1504 秒。

题目来自力扣3986。

大体的处理过程

第一步:解析字符串,提取时间分量
由于两个时间字符串的长度都是固定的 8 位,且格式严格为“HH:MM:SS”,程序不需要进行复杂的字符串分割或循环遍历,而是直接通过下标(索引)来定位并提取字符。

  • • 程序会分别处理起始时间和结束时间。

  • • 提取第 0 位和第 1 位的字符,将这两个字符减去字符 '0' 转换为整数,然后通过乘以 10 加上第二位,组合成十进制的小时数。

  • • 同理,提取第 3 位和第 4 位的字符,组合成分钟数;提取第 6 位和第 7 位的字符,组合成秒数。

  • • 字符串中的冒号(第 2 位和第 5 位)被直接跳过,作为分隔符不参与计算。

第二步:统一单位,转换为总秒数
为了便于计算时间差,程序将提取出的小时、分钟、秒统一换算为从“00:00:00”起算的“总秒数”。

  • • 小时数乘以 3600(一小时包含的秒数)。

  • • 分钟数乘以 60(一分钟包含的秒数)。

  • • 将上述两个乘积与秒数相加,得到一个表示该时间点的整型数值(总秒数)。

第三步:计算时间差
程序将结束时间的总秒数减去起始时间的总秒数。

  • • 得到的结果即为两者之间相差的秒数。

  • • 结合题目描述中的“计算区间包含起始和结束这两个时间点本身”,这里的数学处理就是纯粹的“结束时间总秒数 - 起始时间总秒数”。以题目示例为例:13:00:00 转换为 13×3600 = 46800 秒;12:34:56 转换为 12×3600 + 34×60 + 56 = 43200 + 2040 + 56 = 45296 秒。两者相减得到 1504 秒(包含了起点这一秒的时长跨度)。

第四步:输出结果
在主程序中,将计算得到的整型差值打印出来,即可得到最终的输出结果。

复杂度分析

总的时间复杂度:O(1)
无论输入的时间字符串是什么,程序始终只进行固定次数的字符访问(各读取3次,共6次下标访问)、固定次数的四则运算,没有循环或递归操作。执行时间不随外部数据规模的变化而变化,因此时间复杂度为常数级。

总的额外空间复杂度:O(1)
在计算过程中,程序只使用了几个固定数量的整型变量(如用于存储小时、分钟、秒以及两个总秒数的变量),没有开辟与输入长度相关的数组、列表、哈希表等动态数据结构。因此额外空间复杂度为常数级。

Go完整代码如下:

package main

import (
"fmt"
)

func parse(t string)int {
hour := int(t[0]-'0')*10 + int(t[1]-'0')
minute := int(t[3]-'0')*10 + int(t[4]-'0')
second := int(t[6]-'0')*10 + int(t[7]-'0')
return hour*3600 + minute*60 + second
}

func secondsBetweenTimes(startTime, endTime string)int {
return parse(endTime) - parse(startTime)
}

func main() {
startTime := "12:34:56"
endTime := "13:00:00"
result := secondsBetweenTimes(startTime, endTime)
fmt.Println(result)
}

Python完整代码如下:

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

def parse(t: str) -> int:
# Python 中更优雅的方法是使用 split,无需像 Go 那样逐个字符计算
hour, minute, second = map(int, t.split(':'))
return hour * 3600 + minute * 60 + second

def seconds_between_times(start_time: str, end_time: str) -> int:
return parse(end_time) - parse(start_time)

if __name__ == "__main__":
start_time = "12:34:56"
end_time = "13:00:00"
result = seconds_between_times(start_time, end_time)
print(result)

C++完整代码如下:

  



using namespace std;

// 解析时间字符串为总秒数
int parse(conststring& t) {
int hour = (t[0] - '0') * 10 + (t[1] - '0');
int minute = (t[3] - '0') * 10 + (t[4] - '0');
int second = (t[6] - '0') * 10 + (t[7] - '0');
return hour * 3600 + minute * 60 + second;
}

// 计算两个时间之间的秒数差
int secondsBetweenTimes(conststring& startTime, conststring& endTime) {
return parse(endTime) - parse(startTime);
}

int main() {
string startTime = "12:34:56";
string endTime = "13:00:00";

int result = secondsBetweenTimes(startTime, endTime);
cout << result << endl;

return0;
}

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

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
俄罗斯芯片专家:西方禁止台积电为俄代工芯片、禁止ARM为俄提供新架构,但是没关系,我们找中国工厂制造

俄罗斯芯片专家:西方禁止台积电为俄代工芯片、禁止ARM为俄提供新架构,但是没关系,我们找中国工厂制造

逍遥漠
2026-10-12 12:27:43
iPhone 18 Pro 突然开启降价,直降1100 元

iPhone 18 Pro 突然开启降价,直降1100 元

科技堡垒
2026-10-11 11:26:21
高铁车厢上演闹剧!高铁大爷为打牌执意调转座椅,遭拒后当众怒斥乘务员,还扬言罚款200元,评论炸锅

高铁车厢上演闹剧!高铁大爷为打牌执意调转座椅,遭拒后当众怒斥乘务员,还扬言罚款200元,评论炸锅

火山詩话
2026-10-12 11:33:05
不是13分!杨瀚森21分钟0犯规才是惊喜,和克林根的内线竞争藏答案

不是13分!杨瀚森21分钟0犯规才是惊喜,和克林根的内线竞争藏答案

小兰看体育
2026-10-13 10:34:07
大涨7%!688808,重回“股王”

大涨7%!688808,重回“股王”

证券时报
2026-10-13 10:58:05
马斯克分手后首次公开带娃——我更想一个人待着,只是陪陪孩子

马斯克分手后首次公开带娃——我更想一个人待着,只是陪陪孩子

问问马斯克AskMusk
2026-10-12 13:44:05
美联储,突发大消息!日韩股市早盘双双大跌

美联储,突发大消息!日韩股市早盘双双大跌

证券时报
2026-10-13 09:18:03
李娜澄清多年传言“先怀孕才退役”:九月份宣布退役,十月份发现怀孕,经纪人:能不能不要做什么事情都这么快

李娜澄清多年传言“先怀孕才退役”:九月份宣布退役,十月份发现怀孕,经纪人:能不能不要做什么事情都这么快

极目新闻
2026-10-12 23:04:10
沙特利雅得传出剧烈爆炸声

沙特利雅得传出剧烈爆炸声

上观新闻
2026-10-13 06:27:39
马伊琍大女儿文爱马18岁了!短发抱兔庆生,满脸都是爸妈的优点

马伊琍大女儿文爱马18岁了!短发抱兔庆生,满脸都是爸妈的优点

百言君
2026-10-11 16:17:24
央视《伟大的长征》:顶着烤瓷牙却要演教员,谁的审美出了问题?

央视《伟大的长征》:顶着烤瓷牙却要演教员,谁的审美出了问题?

棠棣分享
2026-10-11 09:30:38
勇士队科尔就波尔津吉斯的健康状况发布重要更新,他此前神秘缺席

勇士队科尔就波尔津吉斯的健康状况发布重要更新,他此前神秘缺席

好火子
2026-10-13 05:42:38
罗永浩被“穷追猛打”!西贝21元馒头再起争论:郑刚发文复盘大馒头事件,直指其偷换概念,网友观点两极分化

罗永浩被“穷追猛打”!西贝21元馒头再起争论:郑刚发文复盘大馒头事件,直指其偷换概念,网友观点两极分化

火山詩话
2026-10-13 07:05:37
头巾女奥马尔因欺诈遭突袭刑事调查,川普动真格

头巾女奥马尔因欺诈遭突袭刑事调查,川普动真格

移光幻影
2026-10-13 07:43:53
中国可能要全面双休,全面双休意味着什么?对中国人有什么影响?

中国可能要全面双休,全面双休意味着什么?对中国人有什么影响?

阿搏体育
2026-10-07 21:00:18
8000张英伟达GPU到达中国!软通动力自建工厂开造服务器:年产10万台

8000张英伟达GPU到达中国!软通动力自建工厂开造服务器:年产10万台

快科技
2026-10-12 09:44:10
全新途胜全球首发,1.6T加8AT,燃油混动插混齐全

全新途胜全球首发,1.6T加8AT,燃油混动插混齐全

沙雕小琳琳
2026-10-12 11:13:10
情况突然不对劲!伊朗憋了一天:主动致电沙特,一开口让人很意外

情况突然不对劲!伊朗憋了一天:主动致电沙特,一开口让人很意外

阿代说事
2026-10-12 10:36:07
退休大局已定?不出意外,未来15年或将迎来史上最大退休潮

退休大局已定?不出意外,未来15年或将迎来史上最大退休潮

找回密码
2026-10-13 10:16:19
岛内民调:超过七成民众认为台湾最大威胁并非来自大陆

岛内民调:超过七成民众认为台湾最大威胁并非来自大陆

金牛传声
2026-10-12 16:18:30
2026-10-13 11:32:49
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
1511文章数 83关注度
往期回顾 全部

科技要闻

扎克伯格宣布追上OpenAI!Meta新模型亮相

头条要闻

国产新车冲出路面跌落百米悬崖 车辆报废司机仅受轻伤

头条要闻

国产新车冲出路面跌落百米悬崖 车辆报废司机仅受轻伤

体育要闻

一周吃6顿披萨的胖子,也能单防姆巴佩?

娱乐要闻

小S女儿许曦文晒照片,形似大S

财经要闻

宜信终于还是爆雷了!最后的P2P大佬被抓

汽车要闻

小鹏G9L巴黎车展全球上市 法国市场售价74990欧元起

态度原创

艺术
时尚
数码
房产
本地

艺术要闻

中国当代画家 尚丁油画作品选

从低谷到巅峰,她让中国网球等了二十年

数码要闻

被逼出来的新旗舰!RTX 5080 24GB定档2027 Q1:价格直奔1.5万

房产要闻

时代典藏双子上新 | 中旅·馥棠公馆395㎡·517㎡塔尖生活馆璀璨亮相

本地新闻

踏访沙县第一村,寻国民小吃本源

无障碍浏览 进入关怀版