さて、私はいくつかのハードインタビューを行ってきたが、これはばかげていた。私は、ペン、紙、電卓、 "URLセーフ"の文字の定義、そして質問を完成させるのに20分という質問があった。質問は(最高のように私が覚えて)であった。インタビュー失敗:Googleが厳しいと思った。
私たちが展開しているIIS Webサーバ上のファイルの変更のための時間に与えられた ポイントを表す一意のURLセーフな文字列を生成する関数を書きます明日は です。 「ポイント・イン・タイム」の分解能は1秒です。私はパニックと
[0-9a-zA-Z\$\-\_\.\+\!\*\'\(\)]
「URLセーフ」の文字の
.NET正規表現パターンは=実際のコードを書くのではなく、私の考えを書きました。彼らは実際にコードを書くことはなかったので、私の "答え"を見て私を却下しました。 :(
私のようなものだった書いた:
つまり- 365 days in a year so "day of year" can be represented in 2 bytes - 4 digits in year (0 - 9999) so year can be represented in 3 bytes - 2 digits in hour (0 - 23) so year can be represented in 1 byte - 2 digits in minutes (0 - 59) so minutes can be represented in 1 byte - 2 digits in seconds (0 - 50) so seconds can be represented in 1 byte TOTAL: 2+3+1+1+1 = 8 bytes total that use 0 - 255 - URL-safe range == 10 + 24 + 24 + 10 == 0-9 + a-z + A-Z + special chars == 68 - 4 bits required to represent URL safe char ANSWER: - A byte is 8 bits - Only 4 bits per byte needed to represented the 8 bytes in a date - 8/2 = 4 FINAL ANSWER: - Only 4 actual bytes needed to represent hash
、タイムスタンプのハッシュが合理的に最大で4 URLセーフ文字で表すことができる
どうだろう。あなたはこれに答えましたか?私はかなり良い開発者だと思っていますが、私は2のべき乗を計算することを心配しなければならなかったので、何年も前です!
どこが*最小長* URLセーフな文字列を探していたとしますか?それは本当に仕事ですか? – BrokenGlass
さて、文字列とハッシュの時間を表現するのではなく、今夜真夜中からの秒数を表すのはなぜですか? DateおよびTimespanクラスを使用してすぐに実装できます。 – psr
バイトではなく、ビットを考えます。そして、base72エンコーディング。 –