সমস্যা
একটি পরিস্থিতি বিবেচনা করুন যেখানে দুটি বর্ণমালার সেনাবাহিনী একে অপরের সাথে লড়াই করছে। উভয়ের সৈন্য এবং তাদের ওজন নিম্নরূপ -
টিমএ
| সৈনিক | <থ>ওজন |
|---|---|
| A | 1 |
| বি | 2 |
| C | 3 |
| D | 4 |
টিমবি
| সৈনিক | <থ>ওজন |
|---|---|
| W | 1 |
| এক্স | 2 |
| Y | 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