ホームページ  >  に質問  >  本文

JavaScript - フロントエンドインタビューでのアルゴリズムの質問

今日は午後から面接があります。二次面接でアルゴリズムの質問がありました。アルゴリズムについては何もわかりません。誰かに手伝ってください。

今回のテーマは、括弧の加算、減算、乗算、除算を計算する関数を実装することです。入力文字列は (1 2)/4 5 (3 5)*3 に似ています。同様の法的演算を行うことができます。
一般的な考え方について少し説明してもらえますか?インタビュアーはこれはアルゴリズムの質問だと真剣に言いましたが、eval() の実装ではないと思いますよね?

给我你的怀抱给我你的怀抱2711日前1386

全員に返信(11)返信します

  • ringa_lee

    ringa_lee2017-05-19 10:29:19

    ディスパッチングフィールドアルゴリズムを使用して、中置式を接尾式に変更します(逆ポーランド式)

    リーリー

    返事
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-19 10:29:19

    eval はメソッドですが、比較的標準化されていないため、ほとんどの場合は使用しないでください。

    この質問に対する正規加算二分木演算の4つの式

    返事
    0
  • 仅有的幸福

    仅有的幸福2017-05-19 10:29:19

    スタックを使用して式の評価を実装するには、いくつかの方法があります

    返事
    0
  • 高洛峰

    高洛峰2017-05-19 10:29:19

    データ構造に対して逆ポーランド語を使用できます

    返事
    0
  • 漂亮男人

    漂亮男人2017-05-19 10:29:19

    最も一般的な方法は、構文分析で式ツリーを構築し、それを解決することです。
    自分で作成することも、Antlr と呼ばれる非常に専門的で多用途なライブラリを使用することもできます。
    もちろん、面接では文法を分析して自分で文法ツリーを構築するように求められるはずですが、実際にそれを行うとなると、Antlr の方が優れています。

    返事
    0
  • 世界只因有你

    世界只因有你2017-05-19 10:29:19

    JavaScriptにおける四則演算の解析アルゴリズムと例、
    ぜひご覧ください

    JavaScriptにおける四則演算の解析アルゴリズムと例

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-19 10:29:19

    eval の放棄されたメソッドの使用はお勧めしません。 1. 正規表現を使用することをお勧めします 2. データ構造でスタックを使用する方法
    お勧めの本: JavaScript データ構造とアルゴリズムを学ぶ
    最近たまたまスタック、キュー、バイナリツリーを勉強していました

    返事
    0
  • 漂亮男人

    漂亮男人2017-05-19 10:29:19

    これは...文字列を入力した場合
    eval() を直接使用できます

    var a = '(1+2)/4+5+(3+5)*3';
    eval(a);

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-19 10:29:19

    文字列の四則演算を解析する一般的に使用される方法は、逆ポーランド法です

    返事
    0
  • 大家讲道理

    大家讲道理2017-05-19 10:29:19

    それを実装するにはスタックを使用します。2 年前にデータ構造の実験をしていたときに、それをどこに配置するかを探します。私の全体的な印象は、2次元配列を使用して演算子の優先順位を決定し、それを計算するためにスタックを使用するというものです。

    返事
    0
  • キャンセル返事