"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावास्क्रिप्ट में सेट (शुरुआती के लिए ट्यूटोरियल)

जावास्क्रिप्ट में सेट (शुरुआती के लिए ट्यूटोरियल)

2024-11-04 को प्रकाशित
ब्राउज़ करें:948

SET in JavaScript (Tutorial for Beginners)

नमस्ते,

क्या आप एक ऐसी डेटा संरचना की तलाश कर रहे हैं जो अद्वितीय मान संग्रहीत करती है, आपको मान सम्मिलित करने, मानों की कुल संख्या खोजने और मान हटाने की अनुमति देती है? इसके लिए आदर्श विकल्प एक सेट है। कई प्रोग्रामिंग भाषाओं में एक अंतर्निहित सेट डेटा संरचना शामिल होती है, और जावास्क्रिप्ट कोई अपवाद नहीं है। आइए गहराई से जानें कि सेट्स कैसे काम करते हैं।

सेट क्या है?
सेट डेटा संरचना है जो आपको किसी भी प्रकार के अद्वितीय मानों को संग्रहीत करने की सुविधा देता है, चाहे आदिम मान हों या ऑब्जेक्ट संदर्भ। सेट O(1) समय जटिलता के साथ सम्मिलित करने, हटाने, अद्यतन करने और आकार संचालन की अनुमति देता है। जो सेट को तेज़ और कुशल बनाता है।

सेट को तेज़ एक्सेस समय देने के लिए डिज़ाइन किया गया है। इन्हें आम तौर पर इस तरह से कार्यान्वित किया जाता है कि प्रत्येक आइटम को एक-एक करके जांचने की तुलना में आइटम को तेजी से ढूंढना आसान हो जाता है। विशिष्ट कार्यान्वयन एक हैश तालिका (O(1) लुकअप) या एक खोज ट्री (O(लॉग(N)) लुकअप) हो सकता है।

प्रमुख बिंदु

  • तेज पहुंच: सेट तत्वों तक त्वरित पहुंच प्रदान करते हैं।
  • कार्यान्वयन: आमतौर पर हैश तालिकाओं या खोज पेड़ों का उपयोग करके कार्यान्वित किया जाता है।
  • लुकअप समय: औसत लुकअप समय O(N) से बेहतर है, अक्सर O(1) या O(log(N))

बुनियादी तरीके

  1. जोड़ें: यह सेट में तत्व जोड़ देगा। यदि तत्व सेट में मौजूद है तो यह कुछ नहीं करेगा।
  2. है: यदि तत्व सेट में मौजूद है तो यह सत्य लौटाएगा अन्यथा गलत।
  3. आकार: यह सेट का आकार लौटा देगा।
  4. delete : यह तत्व को सेट से हटा देगा।
  5. कुंजियाँ: जावास्क्रिप्ट सेट में .keys() विधि एक नया इटरेटर ऑब्जेक्ट लौटाती है जिसमें सेट के मान उसी क्रम में होते हैं जिस क्रम में वे डाले गए थे।

उदाहरण

// 1. Create a new Set and use the .add() method to add elements
const mySet = new Set();
mySet.add(10);
mySet.add(20);
mySet.add(30);

console.log(mySet); // Output: Set { 10, 20, 30 }

// 2. Check if the Set has a specific element using .has() method
console.log(mySet.has(20)); // Output: true
console.log(mySet.has(40)); // Output: false

// 3. Delete an element from the Set using .delete() method
mySet.delete(20);
console.log(mySet); // Output: Set { 10, 30 }

// 4. Iterate over the Set using .keys() method
// In Sets, .keys() and .values() do the same thing
for (const key of mySet.keys()) {
  console.log(key);
}
// Output:
// 10
// 30

// 5. Get the size of the Set using .size property
console.log(mySet.size); // Output: 2


लीटकोड समस्या वाले सेट का उदाहरण:

3. अक्षरों को दोहराए बिना सबसे लंबी सबस्ट्रिंग

एक स्ट्रिंग एस दी गई है, अक्षरों को दोहराए बिना सबसे लंबी सबस्ट्रिंग की लंबाई पाएं।

समाधान

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function(s) {
    let set = new Set();
    let ans = 0;
    let s_index = 0;
    for (let i = 0; i 



स्पष्टीकरण:
फ़ंक्शन lengthOfLongestSubstring वर्णों को दोहराए बिना सबसे लंबी सबस्ट्रिंग खोजने के लिए सेट के साथ एक स्लाइडिंग विंडो तकनीक का उपयोग करता है:

  • विंडो का विस्तार करें: सेट में वर्ण जोड़ें यदि वे पहले से मौजूद नहीं हैं।
  • विंडो को सिकोड़ें: डुप्लिकेट पाए जाने पर विंडो के आकार को समायोजित करते हुए विंडो की शुरुआत से अक्षर हटा दें।
  • अद्यतन लंबाई: अद्वितीय वर्णों के साथ सबस्ट्रिंग की अधिकतम लंबाई को ट्रैक करें।
  • यह दृष्टिकोण प्रत्येक वर्ण को अधिकतम दो बार संसाधित करके एक कुशल O(N) समय जटिलता सुनिश्चित करता है।

बस, यदि आपको कोई संदेह या कोई सुझाव या कोई बात हो तो निसंकोच टिप्पणी जोड़ें।

स्रोत:
एमडीएन (सेट)

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/yashrajxdev/set-data-structure-in-javascript-2e4i?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3