オファーが届きました。友達を掘って受け取りましょう!私は2022年の春の採用チェックインイベントに参加しています。クリックしてイベントの詳細を表示します。
【質問ダイアリー】682.野球ゲーム
この日記の第11章のタイトルは次のとおりです。682。野球の試合、シンプル
1.トピックの説明:
この質問には多くのテキストの説明がありますが、論理は比較的単純です。さらにいくつかの質問をゆっくりとブラッシングした後、質問の意味を理解するための忍耐力を高めることができます。タイトルは単純な質問ですが、次のことができます。それを手放さないでください。すべての質問には学ぶ価値のあるものがあり、すべての人に常に輝かしいポイントがあります。
2.思考分析:
1.この質問はどのような考えを調べますか?あなたはどう思いますか?
この質問を注意深く読んだ後でも、質問の意味は非常に明確です。質問で与えられた規則に注意を払う必要があります。
「+」、「D」、「C」および通常の整数の演算ロジックは適切に処理する必要があり、その他は何もありません。アイデアは次のとおりです。
- タイトルで指定されたopsオペランド配列を1回トラバースします。異なる文字については、対応する数値に変換し、ヘルプ配列を使用して記録し、resを使用してリアルタイムの結果を記録します。
- 論理的に数字を合計し、最終的に結論に達する
結果をシミュレートするために、与えられた文字に従って段階的にシミュレートする必要があるだけです。隠された予防策はありません。タイトルに示されている例を使用して、もう一度説明します。
示例1:ops = ["5"、 "2"、 "C"、 "D"、 "+"]
通常のシミュレーションは数学の問題であることがわかります。3文字のC、D、+の特別な意味と、対応する特別なロジックに注意してください。
結果セットを記録するためのヘルプレコードのヘルプ配列を導入しました
3.コーディング
上記の論理と分析に従って、それを次のコードに変換することができます。これは、数学的方法に従って処理できます。
エンコーディングは次のとおりです。
func calPoints(ops []string) (res int) {
helper := []int{}
for _, op := range ops {
n := len(helper)
switch op {
case "+":
res += helper[n-1] + helper[n-2]
helper = append(helper, helper[n-1]+helper[n-2])
case "D":
res += helper[n-1] * 2
helper = append(helper, 2*helper[n-1])
case "C":
res -= helper[n-1]
helper = helper[:len(helper)-1]
default:
pt, _ := strconv.Atoi(op)
res += pt
helper = append(helper, pt)
}
}
return
}
复制代码
実際のエンコーディングを確認することも非常に基本的であり、主に文字の判断と対応するロジックの実装です。実装されている場合は、配列の操作で処理されます。
4.要約:
この質問は比較的単純で、主にヘッドを変更します。時間計算量はO(n)であり、空間計算量はO(n)です。
この質問はいくつかの非常に正確な定義を与えており、例外に対処することはできません
実際のエンジニアリングコードでは、プログラムの堅牢性を確保するために、さまざまな異常な状況を考慮する必要があります。すべての可能性とシナリオを分析し、さまざまな可能性のあるシナリオを分類し、統一的に分類し、ソリューションを策定し、設計、コードを出力する必要があります。もっと
ただし、簡単な質問から始めて、自信を高めることができます
元のタイトルアドレス:682。野球の試合
私は今日ここにいます、私が学んだこと、何か逸脱があれば、私を訂正してください
いいね、フォロー、お気に入りへようこそ
友達、あなたのサポートと励ましは、私が共有を続け、品質を向上させる動機です
さて、これが今回です
テクノロジーはオープンであり、私たちの精神はオープンでなければなりません。変化を受け入れ、太陽の下で生き、前進します。
私は小悪魔の少年哪吾です、好きで、フォローして集めて、また会いましょう〜