破解字母在 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';
輸出說明
因為在所有炸彈爆炸後,兩支隊伍的得分將相同。
示例
以下為程式碼 -
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
廣告