Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

जावास्क्रिप्ट में आवृत्ति के आधार पर स्ट्रिंग वर्णों को छाँटना

<घंटा/>

समस्या

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो वर्णों की स्ट्रिंग को एकमात्र तर्क के रूप में लेता है।

हमारे फ़ंक्शन को तैयार करना चाहिए और मूल स्ट्रिंग के आधार पर एक नई स्ट्रिंग तैयार करनी चाहिए जिसमें सबसे अधिक बार दिखाई देने वाले वर्णों को पहले रखा जाता है और उसके बाद घटती आवृत्तियों के साथ संख्या होती है।

उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -

const str = 'free';

तब आउटपुट होना चाहिए -

const output = 'eefr';

आउटपुट स्पष्टीकरण:

चूँकि e दो बार प्रकट होता है, इसे पहले r और f के बाद रखा जाता है।

उदाहरण

इसके लिए कोड होगा -

const str = 'free';
const frequencySort = (str = '') => {
   let map = {}
   for (const letter of str) {
      map[letter] = (map[letter] || 0) + 1;
   };
   let res = "";
   let sorted = Object.keys(map).sort((a, b) => map[b] - map[a])
   for (let letter of sorted) {
      for (let count = 0; count < map[letter]; count++) {
         res += letter
      }
   }
   return res;
};
console.log(frequencySort(str));

कोड स्पष्टीकरण:

हमने जो कदम उठाए वे हैं -

  • सबसे पहले, हमने अक्षर गणना का हैशमैप तैयार किया

  • फिर हमने अक्षरों की संख्या के अनुसार मानचित्र को क्रमित किया

  • और अंत में, हमने सॉर्ट किए गए अक्षर से रेस स्ट्रिंग जेनरेट की

आउटपुट

और कंसोल में आउटपुट होगा -

eefr

  1. जावास्क्रिप्ट रेगेक्स में \w बनाम \W?

    \w बनाम \W के बीच बहुत भिन्नता है \w और \W जावास्क्रिप्ट . में जिसमें पूर्व शब्द वर्ण . की देखभाल करता है जैसे कि अल्फ़ा-न्यूमेरिक्स जबकि बाद वाला गैर-शब्द वर्णों . की देखभाल करता है जैसे कि &, ^, %, आदि। आइए इस पर संक्षेप में चर्चा करें। वाक्यविन्यास-1 new RegExp("\\w", "g&quo

  1. जावास्क्रिप्ट में एस्केप वर्ण

    एस्केप कैरेक्टर ऐसे पात्र होते हैं जिनकी व्याख्या किसी वैकल्पिक तरीके से की जा सकती है, फिर हम क्या करना चाहते हैं। इन कैरेक्टर्स को वैसे ही प्रिंट करने के लिए, उनके सामने बैकस्लैश \ शामिल करें। जावास्क्रिप्ट में एस्केप वर्ण निम्नलिखित हैं - कोड परिणाम \b बैकस्पेस \f फ़ॉर्म फ़ीड \n नई लाइन \

  1. जावास्क्रिप्ट में एक स्ट्रिंग के पात्रों को फिर से समूहित करना

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो एक स्ट्रिंग str को पहले और एकमात्र तर्क के रूप में लेता है। स्ट्रिंग str में तीन प्रकार के वर्ण हो सकते हैं - अंग्रेजी अक्षर:(ए-जेड), (ए-जेड) अंक:0-9 विशेष वर्ण - शेष सभी वर्ण हमारे फ़ंक्शन को इस स्ट्रिंग के माध्यम से पुनरावृ