समस्या
एक ऐसी स्थिति पर विचार करें जहां अक्षरों के दो समूहों की सेनाएं आपस में लड़ रही हों। दोनों के सैनिक और उनका वजन इस प्रकार है -
टीमए
सैनिक वें> <वें>वजन वें> |
---|
आ | <टीडी>1
बी | <टीडी>2
सी | <टीडी>3
डी | <टीडी>4
टीमबी
सैनिक वें> <वें>वजन वें> |
---|
W | <टीडी>1
X | <टीडी>2
हाँ | <टीडी>3
Z | <टीडी>4
सैनिकों के अलावा, '!' द्वारा निरूपित अखाड़े में बम भी हैं, और एक बम उसके बगल में रखे सैनिकों को मारता है।
उदाहरण के लिए:'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