Similar Problems

Similar Problems not available

Count Days Spent Together - Leetcode Solution

Companies:

LeetCode:  Count Days Spent Together Leetcode Solution

Difficulty: Easy

Topics: math string  

Problem Statement:

Given two strings of dates, A and B (YYYY-MM-DD format), find the number of days for which the two persons with these birthdates have been alive together.

Solution:

We can solve this problem by first finding the minimum and maximum dates among A and B. We will then iterate from the minimum date until the maximum date and count the number of days for which both persons have been alive. To do this, we will first convert the date strings to datetime objects using the strptime() method of datetime module. We can then use the timedelta() method to find the difference between two datetime objects. Finally, we will convert the timedelta object to integer value representing number of days.

Code:

from datetime import datetime

class Solution:
    def daysBetweenDates(self, date1: str, date2: str) -> int:
        d1 = datetime.strptime(date1, '%Y-%m-%d')
        d2 = datetime.strptime(date2, '%Y-%m-%d')
        if d1 > d2:
            d1, d2 = d2, d1
        delta = 0
        while d1 < d2:
            d1 += timedelta(days=1)
            delta += 1
        return delta

Explanation:

We first import the datetime module. The class Solution defines a method called daysBetweenDates() which takes two arguments: date1 and date2, both of which are strings.

We use the strptime() method to convert the date strings to datetime objects. The datetime object has attributes like year, month, day etc. The strptime() method takes two arguments: the first argument is the date string (in YYYY-MM-DD format) and the second is the format string specifying the format of the date string.

Next, we compare the two datetime objects d1 and d2 to find the minimum and maximum values. If d1 is greater than d2, we swap the values.

We then initialize delta as zero and iterate from d1 until d2 and increment delta by 1 at each iteration.

Finally, we return delta, which represents the number of days for which both persons have been alive.

Time Complexity:

The time complexity of this algorithm is O(n) where n is the number of days between the two dates.

Space Complexity:

The space complexity of this algorithm is O(1).

Count Days Spent Together Solution Code

1