Computer >> Máy Tính >  >> Lập trình >> Javascript

Crack Alphabets chống lại vấn đề trong JavaScript

Vấn đề

Hãy xem xét một tình huống mà quân đội của hai nhóm bảng chữ cái đang chiến đấu với nhau. Biên giới của cả hai và trọng lượng của chúng như sau -

ĐộiA

Người lính
Trọng lượng
A
1
B
2
C
3
D
4

TeamB

Người lính
Trọng lượng
W
1
X
2
Y
3
Z
4

Ngoài những người lính, trong đấu trường cũng có những quả bom được ký hiệu là ‘!’ Và những kẻ giết bom được đặt ở các cạnh của nó.

Ví dụ:‘A! BC’ sẽ dẫn đến kết quả là ‘C’ và ‘!! CC !!’ sẽ dẫn đến kết quả là ‘’.

Chức năng của chúng ta cần phải tìm ra khi nào tất cả các quả bom trong đấu trường phát nổ thì đội nào thắng hoặc đội nào thắng nếu cả hai đội có cùng trọng lượng.

Ví dụ:nếu đầu vào của hàm là -

Đầu vào

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

Đầu ra

const output = 'Tie';

Giải thích đầu ra

Vì sau khi bom nổ cả hai đội sẽ có cùng số điểm.

Ví dụ

Sau đây là mã -

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));

Đầu ra

Tie