アルゴリズムの問題-赤ちゃんの手順を使用してソリューションを提供する



導入
候補者の問題解決能力に興味を持っているリクルーターは、彼らに問題を提示して、彼らにその問題のためにアルゴリズムを書くよう頼みます.そうすることによって、リクルーターは、本当に構文を理解して、それがどのように働くかという人々からコードをコピーして、ペーストする人々を切り離すことができます.しかし、アルゴリズムは何ですか?

ジャンプします
  • Steps in Solving an Algorithm Problem
  • 25 Algorithm to Sharpen Your Problem Solving Skills
  • Bonus
  • Conclusion
  • アルゴリズムは、指定された動作の系列を実行することに基づいて、問題を解決するための手順または公式です.コンピュータプログラムは、精巧なアルゴリズムとして見ることができます.数学と計算機科学において、アルゴリズムは通常再帰問題を解決する小さな手順を意味しますwhatis .
    上記の定義から、アルゴリズムは問題を解決するために使用され、一つは効果的なアルゴリズムを構築するために使用されます.

    アルゴリズムや問題解決のインタビューは、今日の技術の現在の傾向とほとんど避けられないです.

    この現実の観点から、どのように、あなたは問題を解決するアルゴリズムを成し遂げることができますか?

    アルゴリズム問題の解法

  • 理解-問題を理解しようとすると、可能な限り最小の部分にそれを壊す.

  • 戦略-あなたのプログラミング言語(私たちは、この記事の目的のためにJavaScriptを使用しているツールで使用可能なツールを見つける).

  • 実装-これらのツールでそれぞれの小さな問題を解決し、問題を解決するために解決策を組み合わせる.
  • For Example, if you are presented with a word palindrome problem, how do you go about writing the algorithm to that problem?



    上記のステップを適用しましょう


    ステップA :理解する
    ここで大きな問題は、私たちが与えられた単語が逆であれば同じかどうかチェックすることです.
    しかし、そのためには以下のような小さな問題を解決しなければなりません.
  • どのように我々は与えられている元の単語への参照を維持する.
  • どのように単語を反転する.
  • しかし、私たちは単語を反転するために我々は文字に単語を分割する必要があります.
  • 我々が結局それを逆にするならば、我々は性格に加わる必要があります
  • 最後に、新しい単語を古いものと比較する必要があります

  • ステップB戦略
    我々が我々の退化に持っているツールのいくつかは、以下を含みます
  • 変数
  • .split ()
  • 拡がり演算子
  • …ならその他条件文
  • 三項演算子
  • .reverse ()
  • .join ()

  • ステップc :実装
    この問題をより小さなビットに分解したので、私たちはvariable JavaScriptで提供されるツール
    
    const orginalWord = word;
    
    
    文字列を逆にすることはできませんので、単語を分割し、.split("") 方法
    
    let splittedWord = word.split("");
    
    
    これで、配列を.reverse() 以下のように:
    
    let reversedWord = splittedWord.reverse();
    
    
    それは現在逆です.しかし、文字を区切ることなく文字列に戻す必要があります.だから私たちは.join("") こうする
    
    let newWord = reversedWord.join("");
    
    
    最後に、最初に与えられた言葉を比較しましょう
    
       if(orginalWord === newWord){
         console.log(true)
       }else{
         console.log(false)
       }
    
    

    最終コード
    
    function palindrome(word){
      const orginalWord = word;
       let splittedWord = word.split("");
       let reversedWord = splittedWord.reverse();
       let newWord = reversedWord.join("");
    
       if(orginalWord === newWord){
         return(true)
       }else{
         return(false)
       }
    }
    
    
    他の誰かが、次のコードで問題を解決できます.
    
    function palindrome(word){
       return(word === [...word].reverse().join(""))
    }
    
    

    Notice how easy it is to Conquer any problem if you divide it. So basically, algorithm is all about how you can divide and conquer!


    練習、彼らは繁殖完璧を言う.それで、心の中で、私はあなたがあなたの問題解決技術でよりよくなるのを援助するために、次のシリーズであなたを提示しています.私がアルゴリズムを受け入れることに決めたとき、シリーズは少し前に作られました.その決定は一般的に私のプログラミング技術を改善しました、そして、私はあなたが技術的なインタビューで勝つ機会と同様にあまりにもそれを強化すると確信しています.

    So please, enjoy the series...




    アルゴリズムを解くあなたの問題をシャープに25アルゴリズム


  • ボーナス

    結論
    を行うと、そのアルゴリズムは、見えるように困難ではないことがわかります.基本的に、それはすべての日の問題を解決することです.しかし練習せずに、簡単に問題を解決することは容易ではない.
    したがって、私はあなたがフォローし、あなたのために上記のアルゴリズムシリーズを提示する練習をお勧めします.
    Check out some of the solutions on github