問題解決パターン
4939 ワード
共通問題解決パターン入門
ヘイガイズ😊,
以前の講義で論じたように、問題セットに直面したときに実装できる一般的な問題解決パターンを見ています.それで、右にジャンプしましょう.
私が通過することを望むパターンのリストを作る前に、意図されたアプローチを通して行かせてください.
How to Improve in Problem Solving
( I )戦略計画の策定
私は、それを通して操縦することを望んで、少しまたは全く理解でセットされる問題を解決するために、正しく飛び込むことを本当に誘惑することができると認めます.しかし、私はあなたにこのようなタスクを達成するための十分な計画を考案することを提案します.
( ii )共通問題解決パターンの習得
もちろん、これはあなたに様々な問題セットがかかるかもしれない最も一般的なフォームに把握を与える.これにより、これらの問題セットに取り組むための先見性を与える.
Let Highlight the Problem-Solving Process
Understanding the Problem set
Explore Concrete Examples
Breaking things down
以下のような問題セット(アルゴリズムの方法)を打破するにはかなりの方法があります.
Simplifying the Problem Sets
上記の手順を経て後に、我々は最終的に問題を簡素化し、十分な解決策を推測することが期待されています.
Implementation of the said Solution
我々は我々のソリューションは、簡単かつチャレンジングなすべてのテストケースを渡す必要があります.一方、一貫性のある入力の可能性を想定している可能性があります.
Having a Look-Back.
私はあなたのソリューションの最適化されたバージョンを持つ習慣を作成するために採用.質問に答える
予想される結果がある場合、
同様の問題セット
Example
簡単な問題を設定して上記の手順を実行しましょう.あなたは、この自分自身を試すことができます親切に、我々は異なる答えが、同様のアプローチを持ってバインドされていることに注意してください.Questionは、文字列を取得し、与えられた文字列内の各文字の周波数を返す関数を書き込みます.
From 1:
問題を理解するFrom 2:
ベンは国のリストで再発生する文字を数えるための割り当てを与えられた.それで、彼は空想を得て、自動化されたプロセスを採用しました.アルゴリズム的アプローチによりダウンを壊す
From 3:
機能を定義している類似性とカウントなどの鋭い詳細を探している
From 4:
function countCharacter(arr){
let countResult = {};
for(let i = 0; i < arr.length; i++){
let countIndex = arr[i].toLowerCase();
if(countResult[countIndex] > 0){
countResult[countIndex]++;
} else {
countResult[countIndex] = 1;
}
}
return countResult;
}
countCharacter("hey guy!")
結果{" ": 1, !: 1, e: 1, g: 1, h: 1, u: 1, y: 2}
from 5:
エッジケースを考慮function countCharacter(arr){
let countResult = {};
for(var char of arr){
char = char.toLowerCase();
if(/[a-z0-9]/.test(char)){
if(countResult[char] > 0){
countResult[char]++
} else {
countResult[char] = 1;
}
}
}
return countResult;
}
countCharacter("hey guy!")
結果{h: 1, e: 1, y: 2, g: 1, u: 1}
from 6:
リファクタリングfunction countCharacter(arr){
let countResult = {};
for(var char of arr){
char = char.toLowerCase();
if(/[a-z0-9]/.test(char)){
countResult[char] = (countResult[char] || 0) +1;
}
}
return countResult;
}
countCharacter("hey guy!")
結果{h: 1, e: 1, y: 2, g: 1, u: 1}
注は、簡単にあなたのchrome snippetで上記のコードブロックを実行することができますそれぞれの結果を参照してください.上記のコードスニペットは上記の問題文の解決策であり、理解しなければ心配しないでください.私は、最初にこれからの講義から、私が最初に基礎をなしている概念を理解するのを助けることになっている各々のコード・ブロックを説明し始めます.
次の部分で会いましょう👏🏻.
Reference
この問題について(問題解決パターン), 我々は、より多くの情報をここで見つけました https://dev.to/clouded_knight/problem-solving-patterns-2iibテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol