একটি স্ট্রিংয়ে কতগুলো শব্দ ঠিক দুবার এসেছে সেটি গণনা করা।
উদাহরণ
"car bus jeep car jeep bus motorbike truck" // car: ২বার, bus: ২বার, jeep: ২বার // মোট ৩টি শব্দ দুবার রিপিট হয়েছে
সমাধান
const countTwiceRepeated = (str) => {
const words = str.split(' ');
const freq = new Map();
// ফ্রিকোয়েন্সি কাউন্ট
for (const word of words) {
freq.set(word, (freq.get(word) || 0) + 1);
}
// ঠিক ২বার এসেছে এমন শব্দ গণনা
let count = 0;
for (const [word, count] of freq) {
if (count === 2) count++;
}
return count;
};
// সংক্ষিপ্ত ভার্সন
const countTwiceRepeatedShort = (str) => {
const freq = {};
for (const word of str.split(' ')) {
freq[word] = (freq[word] || 0) + 1;
}
return Object.values(freq).filter(c => c === 2).length;
};
// টেস্ট
const str = "car bus jeep car jeep bus motorbike truck";
console.log(countTwiceRepeated(str)); // 3
// বিস্তারিত আউটপুট
const getDuplicateDetails = (str) => {
const freq = {};
for (const word of str.split(' ')) {
freq[word] = (freq[word] || 0) + 1;
}
return Object.entries(freq)
.filter(([_, count]) => count === 2)
.map(([word]) => word);
};
console.log(getDuplicateDetails(str)); // ['car', 'bus', 'jeep']
ব্যাখ্যা
- Map/Object: ফ্রিকোয়েন্সি কাউন্টের জন্য O(1) লুকআপ
- filter: শুধু count === 2 वाले ফিল্টার
- সময় জটিলতা: O(n) - লিনিয়ার
উৎপাদন
3