破解字母在 JavaScript 中造成的問題


問題

考慮以下情況:兩隊字母爭吵。兩隊士兵及其體重如下 -

TeamA

士兵
體重
A
1
B
2
C
3
D
4

TeamB

士兵
體重
W
1
X
2
Y
3
Z
4

除士兵外,場地上還標有“!”的炸彈,炸彈會殺死相鄰兩側計程車兵。

例如:“A!BC”會產生“C”,“!!CC!!”將產生“”。

我們的函式需要找出當場上所有炸彈爆炸時哪一隊獲勝,或者兩隊體重相同時。

例如,如果函式的輸入為 -

輸入

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

輸出

const output = 'Tie';

輸出說明

因為在所有炸彈爆炸後,兩支隊伍的得分將相同。

示例

以下為程式碼 -

 Live Demo

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

更新日期:2021 年 4 月 22 日

90 次瀏覽

開啟 職業生涯

透過完成課程獲得認證

開始
廣告