আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি স্ট্রিং (str) প্রথম আর্গুমেন্ট এবং একটি স্ট্রিং অ্যারে (arr) দ্বিতীয় আর্গুমেন্ট হিসেবে গ্রহণ করবে। আমাদের str-এ যেসব সাবস্ট্রিং arr-এ আছে, সেগুলো
এবং
ট্যাগ দিয়ে র্যাপ (wrap) করতে হবে। যদি দুটি এমন সাবস্ট্রিং ওভারল্যাপ করে, তবে সেগুলো একসাথে শুধু একটি জোড়া প্যারাগ্রাফ ট্যাগ দিয়ে র্যাপ করতে হবে।এছাড়া, যদি প্যারাগ্রাফ ট্যাগ দিয়ে র্যাপ করা দুটি সাবস্ট্রিং পরপর থাকে, তবে সেগুলো একসাথে কবайন (combine) করতে হবে।
উদাহরণস্বরূপ —
ইনপুট স্ট্রিং এবং অ্যারে যদি হয় —
const str = 'kkkllmm'; const arr = ["kkk","kkl","lm"];
তাহলে আউটপুট হবে —
const output = 'kkkllm
m';
উদাহরণ
কোডটি নিচে দেওয়া হলো —
const str = 'kkkllmm'; const arr = ["kkk","kkl","lm"];
var addParagraphTag = (str = [], arr = []) => {
if(!arr.length){
return str
};
const { length } = str;
let paraBoolean = new Array(length).fill(false);
let end = 0;
for (let i = 0; i < length; i++){
for (let j = 0; j < arr.length; j++){
let word = arr[j];
if (str.startsWith(word,i)) {
end = Math.max(end, i + word.length);
};
}
paraBoolean[i] = end > i;
};
let curr = 0;
let newStr = '';
while (curr < length) {
while(paraBoolean[curr] === false) {
newStr += str[curr++];
}
if (curr >= length) break;
newStr += '';
let startBold = curr;
while (paraBoolean[curr] === true) curr++;
newStr += str.slice(startBold, curr);
newStr += '
';
};
return newStr;
};
console.log(addParagraphTag(str, arr));
আউটপুট
কনসোল আউটপুট:
kkkllm
m