クラックアルファベットはJavaScriptで問題と戦う
問題
2つのアルファベットの軍隊が互いに戦っている状況を考えてみましょう。両方のソルジャーとその重量は次のとおりです-
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
-
JavaScriptConst
JavaScriptのconst宣言は、他の値に再割り当てしたり、後で再宣言したりできない変数を作成します。 ES2015で導入されました。 以下はJavaScriptconst宣言のコードです- 例 <!DOCTYPE html> <html> <head> <style> body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; } </sty
-
JavaScriptでのConstとLet。
Constとletは、ブロックスコープの変数を宣言するためにES2015で導入されました。 letを使用して宣言された変数は再割り当てできますが、constを使用して宣言された場合は再割り当てできません。 以下は、JavaScriptでletとconstを示すコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="wi