২৪ ঘন্টার ফরম্যাটে সময় "hh:mm" দেওয়া আছে। একই অঙ্কগুলো পুনরাবৃত্তি করে (অনেকবার ব্যবহার করা যায়) বানানো যাবে এমন সবচেয়ে নিকটবর্তী ভবিষ্যৎ সময় বের করুন।
উদাহরণ: s="03:15" → আউটপুট "03:30"।
সমাধানের ধাপগুলো:
- অঙ্কগুলো সংগ্রহ করুন।
- ব্যাকট্র্যাকিং দিয়ে সব সম্ভাব্য বৈধ সময় জেনারেট করুন।
- সর্ট করে দেওয়া সময়ের পরেরটি বের করুন।
উদাহরণ
class Solution:
def solve(self, s):
use = [s[0], s[1], s[3], s[4]]
possible = set()
def backtrack(path):
nonlocal possible, use
if len(path) == 4:
possible.add(path[:2] + ":" + path[2:])
return
for p in use:
if not (len(path) == 0 and p > "2") and not (path == "2" and p > "3") and not (len(path) == 2 and p > "5"):
backtrack(path + p)
backtrack("")
possible = list(possible)
possible.sort()
for i in range(len(possible) - 1):
if possible[i] == s:
return possible[i + 1]
return possible[0]
ob = Solution()
s = "03:15"
print(ob.solve(s))
ইনপুট
"03:15"
আউটপুট
03:30