20211213-TIL


アルゴリズム#アルゴリズム#


これはアルゴリズム駐車の最後の問題です.私はいくつかの正規の儀式を処理することをマスターします.問題を理解するのに時間がかかりすぎた.検索により、正規表現や演算子を文字列として参照する場合の演算方法は、約2時間50分かかり、時間内に無理に提出できます.

方法

  • 文字列からなるので、まず文字列を基準に並べます.
    そこでsplit関数で分割を試みたが,分割する文字列は−,+,*の3つであるため,正規表現以外の方法は考えられなかった.△念のため正規の方法で進められるように、検索で知るまでかなり迷いました.
    検索によりsplit関数を正規式で適用し,適用できることが分かった.
  • すべての場合の人数を代入しなければならないが、配列を実現するには迷っている.でも最大のケースは衣数が+、-、*3!ケースが6つあるので、すべてのケースの数字を直接リストしたいです.ここでは,2つのコードがあればどのように実装するかを考慮し,次にそれを分岐処理として書き,まずfor文を用いてすべての演算子の数を迂回することを決定し,不適切な演算子に遭遇した場合に分岐処理に移る.
  • 演算子は文字列であるため、演算子に遭遇したときに演算関数が個別に記述される.
    4.連結を用いて演算結果を配列から削除し、演算で使用する2つの数字と1つの演算子を含め、3つの演算子の代わりに結果値を使用します.
  • function solution(expression) {
        let answer = 0;
        let marks = [["*","-","+"],["*","+","-"],["+","-","*"],["+","*","-"],["-","+","*"],["-","*","+"]];
        
        const expressionArray = expression.split(/(\D)/);
        const answerList = [];
        
        
        
        const calculator = (n1,n2,operator) => {
            if(operator === "+") {
                return n1 + n2;
            }
            if(operator === "-") {
                return n1 - n2;
            }
            if(operator === "*") {
                return n1 * n2;
            }
        }
        
        for(let x of marks) {
            const temp = [...expressionArray];
            for(let i= 0; i<3; i++) {
                for (let j = 0; j<temp.length; j++) {
                    if(temp[j] === x[i]) {
                        
                         const result = calculator(+temp[j-1],+temp[j+1],temp[j]);
                        
                        temp.splice(j-1,3,result)
                        j = 0;
                    }
                }
            }
           answerList.push(Math.abs(temp[0]));
        }
     
        
        
        for(let i = 0; i<answerList.length; i++) {
            if(answer < answerList[i]) answer = answerList[i];
        }     
        return answer
    }

    コアJavaScriptコンテンツのクリーンアップ(2.コンテキストの実行)

  • 実際に面接の考えで、どのような形で回答した方が良いのかを整理したいと思います.もっと詳しく出てきましたが、整理して読んでいたら、初めて見た時に見たことのない内容を見つけて、いい感じでした.
  • 整理リンク:Chapter2. コンテキストの実行2
  • 関数型JavaScriptインフラストラクチャコース

  • イテレーション/イテレーション...紛らわしい最後に2つは同じ値だと結論したが、どのように変わるか分からない.
  • 内容整理リンク:02.ES 6における巡回および移植可能なウィジェットプロトコル授業で提供された講義資料でさらに整理する.