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

JavaScript में अल्फाबेट फाइट समस्या को हल करना

समस्या

एक ऐसी स्थिति पर विचार करें जहां वर्णमाला के दो समूहों की सेनाएं एक-दूसरे से लड़ रही हैं। दोनों के सैनिक और उनके वजन इस प्रकार हैं -

टीम A

सैनिकवजन
A1
B2
C3
D4

टीम B

सैनिकवजन
W1
X2
Y3
Z4

सैनिकों के अलावा, अखाड़े में बम भी हैं जिन्हें '!' से दर्शाया गया है, और एक बम उसके आसन्न पक्षों पर रखे सैनिकों को मार देता है।

उदाहरण के लिए: 'A!BC' का परिणाम 'C' होगा और '!!CC!!' का परिणाम '' होगा।

हमारे फ़ंक्शन को यह पता लगाना होगा कि जब अखाड़े में सभी बम फट जाते हैं तो कौन सी टीम जीतती है या यदि दोनों टीमें समान वजन के साथ समाप्त होती हैं।

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

इनपुट

const str = '!WX!YZ!DC!BA!';

आउटपुट

const output = 'Tie';

आउटपुट व्याख्या

क्योंकि सभी बम फटने के बाद दोनों टीमें समान स्कोर के साथ समाप्त होंगी।

उदाहरण

निम्नलिखित कोड है -

const str = '!WX!YZ!DC!BA!';
const stringFight = (str) => {
  const map = {
    'D': 4, 'C': 3, 'B': 2, 'A': 1,
    'Z': -4, 'Y': -3, 'X': -2, 'W': -1
  };
  const arr = [];
  const arr1 = str.split('');
  for (let i = 0; i < str.length; i++) {
    if (arr1[i - 1] !== '!' && arr1[i] !== '!' && arr1[i + 1] !== '!') {
      arr.push(arr1[i]);
    }
  }
  const sum = arr.reduce((a, b) => a + (map[b] ? map[b] : 0), 0);
  if (sum < 0) {
    return 'Team B';
    if (sum < 0) {
      return 'Team B';
    } else if (sum > 0) {
      return 'Team A';
    } else {
      return 'Tie';
    }
  }
};
console.log(stringFight(str));

आउटपुट

Tie
  1. JavaScript Const: ब्लॉक-स्कोप्ड कॉन्स्टेंट्स JavaScript Const: ब्लॉक-स्कोप्ड कॉन्स्टेंट्स

    const ES2015 (ES6) में पेश किया गया एक ब्लॉक-स्कोप्ड वेरिएबल डिक्लेरेशन है जो रीअसाइनमेंट को रोकता है। यह आधुनिक JavaScript में डिफ़ॉल्ट विकल्प होना चाहिए जब रीअसाइनमेंट की आवश्यकता न हो। उदाहरण { try { a = 44; // TypeError: Assignment to constant variable } catch (e

  1. JavaScript में Const vs Let JavaScript में Const vs Let

    Const और let को ES2015 में ब्लॉक-स्कोप्ड वेरिएबल घोषित करने के लिए पेश किया गया था। जबकि let का उपयोग करके घोषित वेरिएबल को पुनः असाइन किया जा सकता है, const का उपयोग करके घोषित वेरिएबल को पुनः असाइन नहीं किया जा सकता। उदाहरण <!DOCTYPE html> <html lang="en"> <head> <me

  1. - JavaScript में स्ट्रिंग में वर्णमाला को उल्टा करना

    समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो एक स्ट्रिंग, str, लेता है जिसमें वर्णमाला और कुछ विशेष वर्ण होते हैं। हमारे फ़ंक्शन को इनपुट स्ट्रिंग के आधार पर एक नई स्ट्रिंग वापस करनी चाहिए जहां वे सभी वर्ण जो वर्णमाला नहीं हैं, वही जगह पर रहें, और सभी अक्षर अपनी स्थिति को उल्टा कर दें। उदाहरण के लि