【leetcode】1344. Angle Between Hands of a Clock

题目如下:

Given two numbers, hour and minutes. Return the smaller angle (in sexagesimal units) formed between the hour and the minute hand.

Example 1:

Input: hour = 12, minutes = 30
Output: 165

Example 2:

Input: hour = 3, minutes = 30
Output: 75

Example 3:

Input: hour = 3, minutes = 15
Output: 7.5

Example 4:

Input: hour = 4, minutes = 50
Output: 155

Example 5:

Input: hour = 12, minutes = 0
Output: 0

Constraints:

  • 1 <= hour <= 12
  • 0 <= minutes <= 59
  • Answers within 10^-5 of the actual value will be accepted as correct.

解题思路:很有意思的题目,关键就是要判断时针的位置,时针偏离的角度和当前的分钟有关。

代码如下:

class Solution(object):
    def angleClock(self, hour, minutes):
        """
        :type hour: int
        :type minutes: int
        :rtype: float
        """
        if hour == 12:
            hour = 0
        hour = hour * 5
        hour += float(minutes) / float(60) * 5
        res =  abs(minutes - hour)/float(60) * 360
        if res > 180:
            res = 360 - res
        return res

 

posted @ 2020-02-09 17:27  seyjs  阅读(323)  评论(0编辑  收藏  举报