সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি স্ট্রিং time নেবে যা "HH:MM" ফরম্যাটে সময় নির্দেশ করে।
ফাংশনটি বর্তমান অঙ্কগুলো পুনরায় ব্যবহার করে পরের সবচেয়ে নিকটবর্তী সময় তৈরি করবে। একটি অঙ্ক কতবার ব্যবহার করা যাবে সেটির কোনো লিমিট নেই।
উদাহরণস্বরূপ, যদি ইনপুট হয় –
ইনপুট
const time = '19:34';
আউটপুট
const output = '19:39';
আউটপুট ব্যাখ্যা
১, ৯, ৩, ৪ অঙ্ক থেকে পরের সবচেয়ে নিকটবর্তী সময় ১৯:৩৯, যা ৫ মিনিট পরে। এটি ১৯:৩৩ নয়, কারণ সেটি ২৩ ঘন্টা ৫৯ মিনিট পরে।
উদাহরণ
নিচে কোডটি দেওয়া হল –
const time = '19:34';
const findClosestTime = (time = '') => {
const [a, b, c, d] = [time[0], time[1], time[3], time[4]].map(x => Number(x));
const sorted = [a, b, c, d].sort((x, y) => x - y);
const d2 = sorted.find(x => x > d);
if (d2 > d) {
return `${a}${b}:${c}${d2}`;
}
const c2 = sorted.find(x => x > c && x <= 5);
const min = Math.min(a, b, c, d);
if (c2 > c) {
return `${a}${b}:${c2}${min}`;
}
const b2 = sorted.find(x => x > b && a * 10 + x <= 24);
if (b2 > b) {
return `${a}${b2}:${min}${min}`;
}
const a2 = sorted.find(x => x > a && x <= 2);
if (a2 > a) {
return `${a2}${min}:${min}${min}`;
}
return `${min}${min}:${min}${min}`;
};
console.log(findClosestTime(time));
আউটপুট
19:39