সমস্যা
আমাদের সন্নিবেশ, এবং যোগফল পদ্ধতি সহ একটি MapSum ক্লাস বাস্তবায়ন করতে হবে। পদ্ধতি সন্নিবেশের জন্য, আমাদের একটি জোড়া দেওয়া হবে (স্ট্রিং, পূর্ণসংখ্যা)। স্ট্রিং কী প্রতিনিধিত্ব করে এবং পূর্ণসংখ্যা মান প্রতিনিধিত্ব করে। যদি কীটি ইতিমধ্যেই বিদ্যমান থাকে, তাহলে মূল কী-মানের জোড়াটি নতুনটিতে ওভাররাইড করা হবে৷
পদ্ধতির যোগফলের জন্য, আমাদের উপসর্গের প্রতিনিধিত্বকারী একটি স্ট্রিং দেওয়া হবে, এবং আমাদের সমস্ত জোড়ার মানগুলির যোগফল ফেরত দিতে হবে যার কী উপসর্গ দিয়ে শুরু হয়।
উদাহরণ
নিম্নলিখিত কোড -
class Node {
constructor(val) {
this.num = 0
this.val = val
this.children = {}
}
}
class MapSum {
constructor(){
this.root = new Node('');
}
}
MapSum.prototype.insert = function (key, val) {
let node = this.root
for (const char of key) {
if (!node.children[char]) {
node.children[char] = new Node(char)
}
node = node.children[char]
}
node.num = val
}
MapSum.prototype.sum = function (prefix) {
let sum = 0
let node = this.root
for (const char of prefix) {
if (!node.children[char]) {
return 0
}
node = node.children[char]
}
const helper = (node) => {
sum += node.num
const { children } = node
Object.keys(children).forEach((key) => {
helper(children[key])
})
}
helper(node)
return sum
}
const m = new MapSum();
console.log(m.insert('apple', 3));
console.log(m.sum('ap')); আউটপুট
undefined 3