[解決済み] Google foo.bar レベル3 (queue_to_do) を完了しようとすると、制限時間を超過し続ける [終了] 。
質問
正直、自分のコードはそんなに悪くないと思うのですが......。これは私が考え出した5番目のバージョンで、今のところベストだと思います......。しかし、foo.barのコンソールでテストを実行すると、"Time limit exceeded"と表示されます。
もっと速くする方法はないでしょうか?今のところ途方に暮れています......。
これがREADMEです。
<ブロッククオートキュー・トゥ・ドゥ
LAMBCHOPドゥームズデイを破壊するための準備はほぼ整った。 しかし、基本システムを保護するセキュリティ・チェックポイントが LAMBCHOPが問題になりそうだ。あなたは、1つを取ることができました アラームを作動させることなくダウンさせることができ、素晴らしいです。ただし ラムダ司令官の助手として、あなたはチェックポイントが つまり、あなたの妨害工作は、自動審査されることになります。 を騙さない限り、発覚して正体がばれる。 自動審査システム
このシステムを騙すには、同じものを返すプログラムを書く必要があります。 警備員が持っているはずのセキュリティチェックサムを 作業員全員をチェックする。幸いなことに、ラムダ司令官は 効率性を追求するあまり、何時間も並ぶことは許されない。 チェックポイントの警備員は、通過率を早くする方法を見つけました。 通ってくる労働者を一人一人チェックする代わりに、警備員は その代わり、並んでいる全員のセキュリティIDを確認し、その後 列が再び埋まるのを待つ。そして、その列が再び埋まるのを待つ。 今度は最後の一人を残して、また列を作る。続けて このように、毎回もう一人ずつ抜けていくのですが、その度に チェックした人のセキュリティIDを記録して、一人分飛ばすまで。 その時点で、すべての作業者のIDをXORします。 チェックサムを作成し、ランチに出かける。幸いなことに 作業員は整然とした性格なので、常に番号順に並びます。 を隙間なく並べる。
例えば、列の先頭の作業員のIDが0であり、セキュリティの チェックポイントの列は3人なので、次のような流れになります。 0 1 2 / 3 4 / 5 6 / 7 8 ここで、警備員のXOR (^) チェックサムは次のようになります。 0^1^2^3^4^6 == 2.
同様に、最初のワーカーのIDが17で、チェックポイントに4つの ワーカーの場合、以下のような処理になります。17 18 19 20 / 21 22 23 / 24 25 26 / 27 28 29 / 30 31 32 これは、チェックサムを生成します。 17^18^19^20^21^22^23^25^26^29 == 14.
すべてのワーカーID(最初のワーカーを含む)は、0から チェックポイントの行は常に最低でも 1ワーカーの長さです。
この情報を使って、次のような関数 answer(start, length) を書いてください。 と同じものを出力することで、セキュリティチェックポイントの欠落をカバーします。 のチェックサムは、昼食前に警備員が通常提出するものです。あなたには、ちょうど 最初にチェックされる作業員のIDを見つけるのに十分な時間があります。 (開始)とラインの長さ(長さ)は、自動化される前のものです。 そのため、あなたのプログラムは、適切なチェックサムを生成する必要があります。 この2つの値だけです。
言語
Pythonのソリューションを提供する場合は、solution.pyを編集します。 を編集してください。
テストケース
入力 (int) start = 0 (int) length = 3 出力。 (int) 2
入力です。 (int) start = 17 (int) length = 4 出力。 (int) 14
verify [file] を使って、あなたの解決策をテストし、その結果を確認します。このとき コードの編集が終わったら、submit [ファイル] でコードを送信します。 の答えです。テストケースに合格すると、その解答は削除されます。 をホームフォルダから削除してください。
そして私の解答。
def answer(start, length):
f = 0
r = 0
while f < length:
for i in range(start, (start+length) - f):
r ^= i
f += 1
start = range(start, start+length)[-1] + 1
return r
解決方法は?
ヒント1
XOR 5^6^7^8 は XOR(1^2^3^4^5^6^7^8)^(1^2^3^4) と同じです。
つまり、最初のn個の自然数のxorとなる関数を見つけることに集中し、その関数を使って、任意の範囲の整数のxorを求めることができるのです。
ヒント2
最初のn個の自然数のxorを求めるには、2進法表現を考える。
000
001
010
011
100
101
110
111
1つのビット位置に集中して、すべての数値のxorを計算したときに得られるパターンを考えてみてください。
関連
-
python string splicing.join()とsplitting.split()の説明
-
Python カメの描画コマンドとその例
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
任意波形を生成してtxtで保存するためのPython実装
-
PythonによるExcelファイルの一括操作の説明
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
python string splicing.join()とsplitting.split()の説明
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?