12시간의 시간 간격을 나타내는 시작 및 종료 시간 쌍을 포함하는 2차원 배열이 제공되었습니다. 동시에 12시간 단위로 표현되는 문자열 str도 제공됩니다. str로 표시되는 시간을 포함하는 총 간격 수를 찾아야 합니다.
시간 "2:30:AM"은 이전 세 시간 간격과 교차합니다.
시간 "11:30:PM"은 배열에 지정된 시간 간격과 교차하지 않습니다.
이 방법에서는 시간을 24시간제로 변환합니다. 그런 다음 비교를 통해 주어진 시간과 교차하는 총 시간 간격 수를 계산합니다. 또한 substr() 메서드를 사용하여 부분 문자열을 가져오고 stoi() 메서드를 사용하여 문자열을 정수로 변환합니다.
1단계 - 시간을 24시간 형식으로 변환하는 ConvertTime() 함수를 정의합니다.
1.1단계 − replacement() 메서드를 사용하여 세 번째 위치의 콜론을 빈 문자열로 바꿉니다.
1.2단계 − 주어진 문자열에서 시간을 나타내는 첫 번째와 두 번째 문자를 가져온 후 첫 번째 숫자에 10을 더하고 두 번째 숫자를 곱하여 시간으로 변환합니다.
1.3단계 - 'time_24' 변수를 0으로 초기화합니다.
1.4단계 − 시간을 24시간 형식으로 변환하려면 두 가지 상황을 처리해야 합니다. 첫 번째 사례는 오전에 발생하고 두 번째 사례는 오후에 발생합니다.
1.4.1단계 - 문자열의 5번째 문자가 'A'이면 시간은 AM입니다. 시간이 AM이고 시가 12인 경우 오전 12시를 00:00시로 간주하므로 문자열에서 분만 추출됩니다. 그렇지 않으면 시간 문자열을 정수 값으로 변환합니다.
1.4.2단계 - 문자열의 다섯 번째 문자가 'P'이면 시간은 PM입니다. 시간 문자열을 추출하여 정수로 변환합니다. 또한, 시간이 12가 아닌 경우 'time_24' 변수에 1200이 추가됩니다.
2단계 - ConvertTime() 함수는 다음 형식으로 시간을 반환합니다.
12:00:AM = 0000
12:58:AM = 0059
11:32:AM = 1132
11:32:PM = 1200 + 1132 = 2332
04:56:PM = 1200 + 456 = 1656
문자열의 5번째 문자가 'A'이면 시간은 AM입니다. 시간이 AM이고 시가 12인 경우 오전 12시를 00:00시로 간주하므로 문자열에서 분만 추출됩니다. 그렇지 않으면 시간 문자열을 정수 값으로 변환합니다.
3단계 - 주어진 시간 문자열을 24시간 형식으로 변환합니다.
4단계 - for 루프를 사용하여 시간 간격 배열을 반복하고 각 시간 문자열을 24시간 형식으로 변환합니다.
5단계 - 그동안 주어진 시간 문자열이 현재 간격 사이에 있는지 계속 확인하세요. 그렇다면 'res' 개수를 1만큼 늘립니다.
6단계 - 'res' 변수의 값을 반환합니다.
시간 복잡도 - 시간 간격 배열을 반복하므로 O(N)입니다.
공간 복잡성 − O(1) 왜냐하면 일정한 공간을 사용하지 않기 때문입니다.
위 문제를 해결할 때 사용자는 주로 시간을 24시간 형식으로 변환한 다음 일반적인 비교를 수행해야 합니다.
위 내용은 특정 회의 시간과 교차하는 간격 수를 계산합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!