Tuesday, 9 August 2022

 

'''
problem--
Given a time in 12-hour AM/PM format, convert it to military (24-hour) time.
Note: Midnight is 12:00:00AM on a 12-hour clock, and 00:00:00 on a 24-hour clock. Noon is 12:00:00PM on a 12-hour clock, and 12:00:00 on a 24-hour clock.
Function Description--
Complete the timeConversion function in the editor below. It should return a new string representing the input time in 24 hour format.
timeConversion has the following parameter(s):
s: a string representing time in 12 hour format
Input Format--
A single string containing a time in 12-hour clock format (i.e.:hh:mm:ssAM or hh:mm:ssPM) ,where 00<=hh<=12 and 00<=mm,ss<=59.
Constraints--
All input times are valid
Output Format--
Convert and print the given time in 24-hour format, where 00<=hh<=23.
Sample Input 0--
07:05:45PM
Sample Output 0--
19:05:45
'''
# Here is my solution to the question given in HackerRank site
s=input()
time=""
if (s[8:10]=='AM' and int(s[0:2]+s[3:5]+s[6:8])<=116059):
    time=s[0:8]
    print(time)

elif (s[8:10]=='AM' and int(s[0:2]+s[3:5]+s[6:8])>=120000 and int(s[0:2]+s[3:5]+s[6:8])<=126059):
    #time=str(int(s[0:2])-12)+'0'+s[2:8]  
    time=str(int(s[0:2])-12)+'0'+s[2:8]
    print(time)

elif (s[8:10]=='PM' and int(s[0:2]+s[3:5]+s[6:8])>=120000 and int(s[0:2]+s[3:5]+s[6:8])<=126059):
    time=s[0:8]
    print(time)


else:
    time=str((int(s[0:2]))+12)+s[2:8]
    print(time)
    






Good thoughtful question on Binary search on answers

Problem link:  https://leetcode.com/problems/maximize-score-of-numbers-in-ranges/description/ Solution: //import java.util.Arrays; class So...