Linkedin正規表現パズル解析

子供の頃から、私たちは皆、クロスワードについて知っています。 人類は彼らの品種のかなりの数を発明しました。 そして、これらの種類の1つは、博学に関する質問の代わりに、正規表現の使用を伴います。 そのようなクロスワードの1つへのリンクが私の手に落ち、私は熱心にそれを解明し始めました。

クロスワードパズル

この記事では、このクロスワードをポイントで解析したいと思います。 この記事は、すでにビジネスに精通しており、正規表現を使用しているが、重要なタスクに問題がある人には役立つかもしれません。 いずれにせよ、自分で試してみることをお勧めします。 複雑ではありません。 さて、ネガティブなレトロスペクティブチェックのようなものがあなたの作業兵器の一部であるなら、あなたは記事で何も新しいものを見つけません。

これは何?


通常のクロスワードパズルは長方形です。 両側の説明は正規表現であり、これらのセルの内容を完全に説明する必要があります。 明確にするために、著者は記号^および$省略しました。 つまり R+D^R+D$として理解する必要があります。 ^記号は行の始まりと$終わりを示すため、式は4つのセル(行または列)全体の内容を表します。

どこから始めますか?


通常のクロスワードと同様に、最も簡単な開始方法は最も単純な式を使用することです。 この場合、 R+D 明らかに。 4番目のセルはシンボルDで占められ、最初の3つは3つのRであることに注意してください。 + R後は、次のように記述できますRは1回以上満たす必要があります。

Rrrd

行は緑色でマークされているため、 RRRDは正規表現^R+D$満たしました。 続けましょう。

[リンク] * IN


この正規表現は次のように簡単に説明できます。行はINで終了し、その前に次の辞書からの任意のハッシュが含まれています: LINKED 明らかなINをドライブします。

で

同時に、 R+Dがこの辞書に完全に適合するという事実に注目します。 1つのセルが空のままでした。後で戻ります。

[^ WORK] * ING?


行はINGまたはIN終わる必要があることに注意してください。 つまり 実際、2つのオプションがあります。 ? Gが存在する場合と存在しない場合があることをGが示す前に。 [LINKED]*INの辞書を調べますが、その中に記号Gは見つかりません。 残るのはINのオプションだけです:

で

(ENG | INE | E | R)*


より複雑な例を送信します。 この場合、グループ(ENG|INE|E|R)があります。これは、何度でも使用できます(記号*参照)。 このグループは、 ENGINEE 、およびRのオプションを提供していますR つまり 最終行はEEEEEREREEEEERERなどです。

R+Dからの記号Rは、すでに私たちに刻まれています;それはグループにも存在します。 2番目のセルには、すでにシンボルI入力されており、 INEの先頭にあります。 したがって、行はR + INE = RINE形式になります。

RINE

パズルの半分以上がすでに組み立てられています。

C {0} N [NECT] *


最初のトリックが登場しました。 {0}を見てください{0}代わりに、「1」、「1.3」、「5」、および可能な繰り返し数を規制する他のオプションがあります。 しかし、0があります。 単にC文字はありません。 彼を無視します。

Nが後に続くため、入力します。

N

。(LN | K | D)*


正規表現の先頭にあるドットメタキャラクターは、任意の文字をこの位置に配置できることを示しています(改行文字にはニュアンスがありますが、このクロスワードには適用されません)。 すでに駆動されたRは非常に適しています。

次に、グループ(LN|K|D)が表示されます。これは、必要な回数だけ繰り返すことができます。 注目すべき点は、そこからのLNだけが4番目のセルに近づくということです。 これにより、 Lを大胆に入力できます。

L

[^ WORK] * ING?


辞書[^WORK]は、記号^で始まります。 この位置に出現してはならない文字のリストが含まれています。 (LN|K|D)は2つの1文字のバリアントが含まれます。これらはKD シンボルKを除外します 彼は私たちの否定の辞書に載っています。 Dのみが残ります。

D

フィニッシュライン([MBERS] *)\ 1


この正規表現では、水たまりに座っていました。 十分な知識がありませんでした。 実際、これがまさにこのメモを書くきっかけになりました。

何がありますか? [MBERS]ディクショナリを含むグループがあり、必要に応じて何度でも繰り返すことができます。 最初のセルには、辞書にあるシンボルRがすでにあります。

\1記号は、正規表現の最初のグループを変更せずにこの位置で複製する必要があることを示しています。 グループと\1間に何もないので、4つのセルに同じ2文字のグループを2回続けて含める必要があることがわかります。 例: RRRRSRSRまたはRSRS

それから、最初のシンボルがわかっているので、3番目のシンボルがわかったということになります。

Rr

最後の仕上げがあります。 C{0}N[NECT]* 4番目のセルが辞書[NECT]および[MBERS]収まることがわかっています。 唯一の交差点はシンボルE 4番目のセルが見つかりました。 したがって、2番目、つまり 解決されたクロスワード:

成功

Linkedinは私たちを祝福しCongratulations! Only 12% of people who attempt this puzzle solve itCongratulations! Only 12% of people who attempt this puzzle solve it Congratulations! Only 12% of people who attempt this puzzle solve itます。 私は12%が天井から取られていると信じています。

参照資料


Source: https://habr.com/ru/post/J279199/


All Articles