মান লক্ষ্য করুন আমাদের কাছে একটি সর্টেড এবং ডিসজয়েন্ট (non-overlapping) ইন্টারভালের তালিকা আছে এবং অন্য একটি cut ইন্টারভাল। আমাদের কাজ হল cut ইন্টারভালের সাথে ইন্টারসেক্ট করা সব অংশ মুছে ফেলা এবং বাকি অংশগুলো নতুন লিস্ট হিসেবে রিটার্ন করা।
উদাহরণস্বরূপ, যদি ইনপুট হয় intervals = [[2, 11],[13, 31],[41, 61]] এবং cut = [8, 46], তবে আউটপুট হবে [[2, 8], [46, 61]]।
cut_start, cut_end := cutans := []- প্রতিটি
(start, end)এর জন্যintervals-এ:- যদি
max(cut_start, start) < min(end, cut_end)হয় (অর্থাৎ ইন্টারসেক্ট করে), তবে:- যদি
start < cut_startহয়, তবে[start, cut_start]কেans-এ ঢুকান। - যদি
end > cut_endহয়, তবে[cut_end, end]কেans-এ ঢুকান।
- যদি
- অন্যথায় (ইন্টারসেক্ট না করলে),
[start, end]কেans-এ ঢুকান।
- যদি
ansরিটার্ন করুন।
class Solution:
def solve(self, intervals, cut):
cut_start, cut_end = cut
ans = []
for start, end in intervals:
if max(cut_start, start) < min(end, cut_end):
if start < cut_start:
ans.append([start, cut_start])
if end > cut_end:
ans.append([cut_end, end])
else:
ans.append([start, end])
return ans
ob = Solution()
intervals = [[2, 11],[13, 31],[41, 61]]
cut = [8, 46]
print(ob.solve(intervals, cut))
[[2, 11],[13, 31],[41, 61]], [8, 46]
[[2, 8], [46, 61]]