首页 > 代码库 > [Hackerrank]时间转换Time Conversion
[Hackerrank]时间转换Time Conversion
题目链接
大致要求是说给定一个十二小时制的时间,给出它的二十四小时制的形式。
输入格式:hh:mm:ssAM 或者 hh:mm:ssPM,其中01≤hh≤12,00≤mm,ss≤59
思路
判断字符串第9位,为‘P’就说明是下午的时间,转换一下hh至数字后+12再输出。
没想到这么一道水题错了4个点……
再一读题,注意到题干里note部分,发现鬼畜的正午和午夜分别是12:00PM和12:00AM,对应的二十四小时时间就是12:00和00:00,真是活久见。
所以last version就是先判hh是不是12,是12就归零,不是就不管它;接着如果是PM就照旧+12,AM不变即可。
Code
var st:string; i:longint; begin readln(st); if st[1]+st[2]=‘12‘ then begin st[1]:=‘0‘; st[2]:=‘0‘; end; if st[9]=‘P‘ then begin write((ord(st[1])-48)*10+(ord(st[2])-48)+12,‘:‘,st[4],st[5],st[6],st[7],st[8]); writeln; end else begin for i:=1 to 8 do write(st[i]); writeln end end.
代码放在了ubuntu pastebin
后续
写这道题不是因为它难,而是因为它玄学的思路……有兴趣可以看一下上一个版本的代码,然后错三个点。在此马克留个意——
好吧我承认这是生活经验问题……十二小时制真是神奇╭(╯^╰)╮
- 封面Pixiv ID=64173982
[Hackerrank]时间转换Time Conversion
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。