-2

わかりました、アルゴリズムのウィジー。あなたがこの入力を持っていると仮定しましょう:

空は青[開始]空は青[終了]砂は茶色[開始]砂は茶色[終了]空は青、砂は茶色

次のルールに基づいて解析します。

  1. すべての[start]タグと[end]タグの最初と最後で入力を行に分割します
  2. [start]タグと[end]タグの間にある場合は、青の値を灰色に変更します
  3. [start]タグと[end]タグの間にある場合は、茶色の値を黄褐色に変更します

期待される出力は、次のようになります。

  1. 空は青い
  2. [始める]
  3. 空は灰色です
  4. [終わり]
  5. 砂は茶色です
  6. [始める]
  7. 砂は日焼けしています
  8. [終わり]
  9. 空は青く、砂は茶色です

これを行うための最適なアルゴリズムは何でしょうか?

注:思考の流れが明確である限り、どの言語を使用して応答するかは問題ではありません。

4

1 に答える 1

0

[start]、[end]、青、茶色、その他すべてを語彙素として使用して文脈自由文法を作成し、解析ツリーを構築し、それを変更して文字列を再構築できます

ただし、少しストレッチのようです。代わりに、検索と置換を行い、[start] を \n[start]\n に、[end] を \n[start]\end に置き換えます。次に、行を調べて、開始と終了の間の行で色を置き換えます。

ただし、パーサーを使用する方がはるかにクールです。

于 2012-10-16T06:53:55.330 に答える