プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

6
電話キーパッドの最適化
DvorakやNeoのような新しいキーボードレイアウトを退屈に学んでいる人々に対するこの継続的な流行は、生産性を高めていると思われるためです。キーボードレイアウトを切り替えるのは悪い考えだと思います。スピードを上げるのに数か月かかることがあり、他のコンピューターよりも最終的に5%速くなったときに、コンピューターで入力する必要がある場合はめちゃくちゃになります自分ではない。 また、これらすべての人々は、現代のコミュニケーションの本当のボトルネックがどこにあるのか、電話のキーパッドを忘れています。 これは、平均的な電話キーパッドの外観です。 文字「r」はボタン7の3番目の文字です。したがって、携帯電話で文字「r」を入力する場合、ボタン7を3回押し、「s」の場合は4回押し、「a」の場合はボタン2を1回押します。 これを考慮すると、「d」の後に「e」を付けるのはおそらく悪い決定でした-「e」は英語のアルファベットで最も一般的に使用される文字です。したがって、「DEF」の代わりにボタン3「EDF」にラベルを付けると、キーストロークをかなり節約できます。 さらに、同じボタンを共有する2文字を入力するのは面倒であることに気付いたでしょう。「TU」を書きたい場合、「V」になるので8を3回押すだけではいけません。したがって、通常は「T」と入力し、スペースを押してからバックスペースを押し、「U」と入力します。これは、3回ではなく5回のボタンを押す操作に相当します。 TL; DR 次の2つのルールがある場合: ボタンをn回押すと、文字が入力されます。nは、ボタンのラベル上の文字の位置です。 同じボタンを使用して入力される2つの文字を書くには、追加の2ボタンを押す必要があります 特定のテキストが与えられた場合、ボタンを押す必要が最も少ない電話キーボードレイアウトは何ですか?ボタン2〜9のみを使用する必要があり、1と0は特別なシンボル用に予約されています。 入力 最適なレイアウトを見つける必要があるテキストは、stdinを介して提供されます。小文字のアルファベット以外のものを処理する必要はなく、入力がそれだけで構成されていると想定できます。また、入力テキストが適度に大きく、すべての文字が少なくとも一度はそこにあると想定できます(それが役立つ場合)。 出力 出力にあまり多くの制約を付けたくありません。これは、一部の言語が他の言語よりも有利になる場合があるためです。ただし、言語で配列が適切であると示されている場合は、各ラベルを改行で区切ることもできます。 最適なレイアウトは複数存在する可能性があり、それらのいずれかを印刷できます。以下に簡単な例を示します。 >> echo "jackdawslovemybigsphinxofquartz" | foo.sh ojpt avhz cen skm dyf wbq ixu lgr ボーナスポイント -35アルゴリズムがすべての可能なレイアウトを強引に強制していない場合(ここではHaskellの「順列」を調べています) -3コードがテキストメッセージ(140文字)に収まり、コードを友人に送信する写真を投稿した場合。 これはStackExchangeでの最初の課題です。私はあなたがそれを好むかどうか、またはそれについて他のフィードバックがあるかどうか聞いてうれしいです!
33 code-golf 

13
プログラミングの二分法(文字通り)
「and」という単語で区切ることができる2つの適度に正確な(しかし賢い可能性のある)単語またはフレーズを含む回答を含む、平易な英語で書かれた質問を考えてみましょう。 Q:コインの両面は何ですか?A:頭と尾 Q:旅行する最良の方法は何ですか?A:飛行機とジェットパック Q:カラスはなぜライティングデスクのようなのですか?A:両方に「b」があり、どちらにも「n」がないため ゴール 通常実行すると、そのような質問を出力するプログラムを作成します。 2番目の文字から始まるプログラムから他のすべての文字が削除され、結果が再実行されると、出力の結果は「and」の左側にあるものである必要があります。 他のすべての文字が最初の文字から始まるプログラムから削除され、結果が再実行されると、出力の答えは「and」の右側にあるものでなければなりません。 (「and」自体は出力されません。) 例 プログラムが A1B2C3D4E5F6G7H8I9 そしてその出力は What are the two sides of a coin? の出力はであるABCDEFGHI必要がheadsあり、の出力はである123456789必要がありますtails。 質問と回答に関する規則 あなたは私の質問例を使用することができますが、あなた自身の質問を作成することをお勧めします。 質問と2つの回答部分: すべて明確でなければなりません 一般的な文法的に意味のある英語である必要があります 印刷可能なASCII(16進数20から7E)のみを含めることができます 理想的には、質問は大文字で区切り、句読点を付けます(ただし、答えは必須ではありません)。 質問は30文字以上で、エントロピーが3.5以上である必要があります。(文字列を入力し、calculateを押し、最後のH(X)を探します。) 2つの回答部分([space]and[space]それらの間は含まない)は、それぞれエントロピーが2以上の少なくとも5文字である必要があります。 「and」という単語は、どちらの回答部分にも現れる場合があります。 コードに関する規則 3つのコードスニペットはどれも: コンパイラ/インタプリタによって従来無視されていたコメントまたはその他の何かを含む(余分なセミコロンを1つまたは2つ入れることを心配しないでください。ただし、コメントであると思われる場合はおそらくそうです) 実行中にプログラムを終了する コードには、Unicodeや印刷不可能なASCIIなど、任意の文字を含めることができます。 奇数または偶数の文字が含まれる場合があります。 出力は、stdout、ファイル、または妥当と思われるものに出力されます。入力はありません。 得点 私はゴルフの答えを奨励したくありませんが、賢い答えをさらに奨励したいので、得点はコードゴルフと人気コンテストの中間になります。 スコア= (upvotes - downvotes) - floor((bytes in code that …

15
キューブ上のアリ
アリは、ワイヤフレームキューブのエッジ(面ではなく)に沿って歩きます。遭遇する各頂点は、2つの新しいエッジが分岐するフォークを提示します。アリはどちらの方向に曲がるleftかを選択します- またはright。これらの方向は、頂点に向かい、立方体の外側にいるアリに相対的です。あなたの目標は、アリがとったleft/ right選択のシーケンスから、それが開始したのと同じ位置で終了するかどうかを判断することです。 たとえば、アリが4回左に曲がった場合(left left left left)、反時計回りに四角を横切り、開始した場所で終了します。しかし、それが進むleft left left left rightと、キューブ上の別の場所で終了します。また、それが進む場合left right right right left、開始エッジで終了しますが、反対側の頂点に面しますが、同じ位置としてカウントされません。 アリのパスは、開始したエッジを含むエッジを繰り返す場合がありますが、重要なのは、シーケンス全体の後に終了する場所です。 アリのターンシーケンスを受け取り、アリがシーケンスの後に開始位置に戻ったかどうかを出力する名前付き関数を作成します。名前のない関数を変数に割り当てるだけで、名前の付いた関数にできます。 編集変数。) 入力 選択した形式で表される、長さを含む一連のleft/ right決定。これは、文字の文字列/ 、数字のリスト/ 、またはブール値の配列です。コードに役立つメソッド名や文字列にすることなど、安っぽいものはありません。031RL1-1 以下のテストケースと異なる場合は、テストケースを形式で投稿してください。 出力 True/ False、0/ 1、またはあなたの言語の類似物。 受賞基準 最少バイトが勝ちます。名前付き関数を指定する必要があることを忘れないでください。関数の外にコードを置くこともできますが、それらのバイトもカウントされます。複数回呼び出された場合、関数は正しく動作するはずです。 テストケース True ケース(1行に1つ、2つ目は空のリスト): 1 1 1 1 -1 -1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 …
33 code-golf 

6
フォトモザイクまたは:電球を交換するには何人のプログラマーが必要ですか?
Stack Overflowのトップユーザーのアバターから2025枚のヘッドショットのモザイクを編集しました。 (画像をクリックすると、フルサイズで表示されます。) あなたの仕事は、この45×45グリッドの48×48ピクセルのアバターを使用して、別の画像の正確なフォトモザイクを作成するアルゴリズムを記述することです。 テスト画像 これがテスト画像です。最初はもちろん電球です! (ここではフルサイズではありません。画像をクリックしてフルサイズで表示してください。ハーフサイズバージョンは、The Kiss、A Sunday Afternoon ...、Steve Jobs、およびspheresで利用できます。) レイトレースされた球体を除くすべてのウィキペディアに感謝します。 フルサイズでは、これらの画像のサイズはすべて48で割り切れます。大きい画像はJPEGである必要があり、アップロードに十分な圧縮が可能です。 得点 これは人気コンテストです。元の画像を最も正確に描写するモザイクを使用した投稿は、投票する必要があります。私は1週間か2週間で最高票を獲得します。 ルール フォトモザイクは、グリッドから配置された、上記のモザイクから取られた変更されていない 48×48ピクセルのアバターで完全に構成されている必要があります。 モザイクでアバターを再利用できます。(実際には、より大きなテスト画像が必要です。) 出力を表示しますが、テストイメージは非常に大きく、StackExchangeは最大2MBのイメージの投稿のみを許可することに注意してください。画像を圧縮するか、他の場所にホストして、ここに小さいバージョンを配置します。 勝者を確認するには、PNGバージョンの電球または球体モザイクを提供する必要があります。これは、それらを検証して(以下を参照)、モザイクの見栄えを良くするためにアバターに余分な色を追加しないようにするためです。 バリデーター このPythonスクリプトを使用して、完成したモザイクが実際に変更されていないアバターを使用しているかどうかを確認できます。ただ、セットtoValidateとallTiles。ピクセルごとに正確に比較するため、JPEGやその他の損失の多い形式では機能しません。 from PIL import Image, ImageChops toValidate = 'test.png' #test.png is the mosaic to validate allTiles = 'avatars.png' #avatars.png is the grid of 2025 48x48 avatars def …

22
文の内側のラマを引き出す
あなたの目的は Pie is good. I just ate a bunch of pies early this morning. Actually, it was closer to the afternoon. Mornings are good. そして、「Llama」という単語を構成する文字が現れる文字列のインデックスの配列を作成します(それぞれ順番に1つ)。たとえば、インデックスを表示するために、キャレットで示された文字を表示します。 Pie is good. I just ate a bunch of pies early this morning. Actually, it was closer to the afternoon. Mornings are good. ^ ^ …
33 code-golf 

17
Stackoverflowの賞金はいくらですか?
仕事: あなたは素晴らしいプログラマーであり、Stackoverflow-answererであり、Stackoverflowの恩恵ですべての質問に答えることにします。あなたは非常に優れているので、すべての質問ですべての賞金を得ることができます。担当者があふれるのを待つ間、プログラムを作成して、すべての報奨金の担当者の合計額を調べます。 ルール: 実行すると、 プログラムは、スタックオーバーフローの機能タブをナビゲートします。 各賞金の価値を削り出し、 次に、合計して合計を表示します SO(およびSOのみ)のどこからでもデータをダウンロードする必要がありますが、約10ページしかないため、https://stackoverflow.com/questions?pagesize=50&sort=featuredを使用することをお勧めします これはcode-golfなので、最短のコードが優先されます
33 code-golf 

4
色のイメージバトル
最高のエントリーと@TheBestOne(優秀なスポーツマンシップ!)からの200バウンティを獲得するための@kuroinekoへのお祝い。 反対派のプログラムが行う前に、できるだけ多くの画像に色を付けるプログラムを書いてください。 簡単なルール プログラムには、画像、色、整数Nが与えられます。 各ターンには、他のプログラムからピクセルの更新が送信され、N個の更新を要求されます。 色のピクセルの隣にある任意の白いピクセルを更新できます。 最も多くのピクセルを追加したプログラムが勝ちます。 ルールの詳細 プログラムには、PNG画像のファイル名、ホームカラー、および数値Nが与えられます。数値Nは、プログラムが各ターンに色付けできるピクセルの最大数です。 例: MyProg arena.png (255,0,0) 30 入力画像は、辺が20〜1000ピクセルの長方形になります。黒、白、カラーのピクセルで構成されます。あなたのプログラムは白のシーケンスを選ぶかもしれません新しいピクセルごとに、自分の色の4つの隣接ピクセルのうち少なくとも1つを持たなければならないという条件で、ピクセルのして独自の色に。画像には最初、少なくとも1ピクセルの色があります。また、プログラムが割り当てられていない色のピクセルがある場合もあります。アルファチャネルは使用されません。 あなたの目標は、敵をブロックし、できるだけ多くのピクセルに色を書き込むことです。 各ターンは、STDINで1行以上のメッセージ行を受け入れ、STDOUTでピクセル座標で構成される行を書き込みます。STDOUTをバッファなしとして割り当てるか、毎回STDOUTバッファをフラッシュすることを忘れないでください。 各ターンに呼び出されるプレイヤーの順序はランダムに割り当てられます。これは、対戦相手(またはプログラム)が連続して2ターンを持っている可能性があることを意味します。 プログラムにはcolour (N,N,N) chose X,Y X,Y ... X,Y、プレーヤープログラムによって入力されたピクセルを説明する情報メッセージが送信されます。プレーヤーが移動を行わない場合、または有効な移動を行わない場合、そのプレーヤーの移動に関するメッセージは送信されません。プログラムには、受け入れられた独自の移動に関するメッセージも送信されます(少なくとも1つの有効な移動を指定した場合)。ピクセル0,0は、画像の左上隅にあります。 を受け取るpick pixelsと、プログラムはX,Y X,Y ... X,Y最大Nピクセルを出力します( '\ n'のみで構成される空の文字列が許可されます)。ピクセルは、プロットの順序でなければなりません。ピクセルが無効の場合、ピクセルは無視され、プレーヤーへのレポートには含まれません。プログラムの開始後、初期化するのに2秒かかりますが、各ターンで答えを返すのに0.1秒しかかかりません。0.1秒後に送信されたピクセル更新は、障害を記録します。5つの障害の後、プログラムは中断され、更新またはpick pixels要求は送信されません。 ジャッジプログラムが、中断されていないすべてのプレーヤープログラムから空または無効なピクセルの選択を受け取ると、画像は完了したと見なされ、プログラムに「終了」というメッセージが送信されます。「終了」を受け取った後、プログラムを終了する必要があります。 得点 審査員は、画像が完成した後にポイントを獲得します。スコアは、更新されたピクセル数をそのラウンドの平均ピクセルキャプチャで割ったもので、パーセンテージで表されます。 プレーヤーによって画像に追加されるピクセルの数はAです。すべての Pプレーヤーによって追加されるピクセルの合計数はTです。 avg = T/P score = 100*A/avg 投稿スコア 参照相手「The Blob」が与えられます。回答ごとに、ボットに名前、言語、および参照対戦相手に対するスコア(アリーナ1から4の平均)でタイトルを付けます。戦闘の写真やアニメーションもいいでしょう。勝者は、参照ボットに対して最高のスコアを獲得したプログラムです。 The Blobの勝ち方が簡単すぎると判明した場合は、より強力な参照相手と2回目のラウンドを追加することができます。 また、4つ以上のプレーヤープログラムを試すこともできます。回答として投稿された他のボットに対してボットをテストすることもできます。 …

7
アンチエイリアスASCIIアート
バックグラウンド ASCIIアートとは、ASCIIテキストを使用して形状を形成することにより画像を作成する方法です。 エイリアシングは、文字のサイズであるASCIIアートの大きな「ピクセル」によって作成される効果です。画像はブロック状になり、見にくくなります。アンチエイリアスは、グラデーションを作成し、ASCIIアートのハードエッジを柔らかくすることにより、この効果を取り除きます。 チャレンジ あなたの挑戦は、ASCIIアートの一部を取り、アンチエイリアスされたバージョンを出力する、可能な限り短いプログラムを書くことです。 どのようなアンチエイリアシングですか? ASCIIアートはすべて、スペースと非空白の2種類のシンボルで構成されます。空白文字以外の文字ごとに、プログラムは、アンチエイリアス処理が必要な位置にあるかどうかを判断する必要があります。正しい場合は、正しい文字に置き換える必要があります。そうでない場合、キャラクターは同じままです。 キャラクターにアンチエイリアスをかける必要があるかどうか、どのようにしてわかりますか?答えは、キャラクターのすぐ上、下、左、右にあるキャラクターに依存します(対角線ではありません)。ここでアンチエイリアシングが、必要とされるときのチャートである?とx任意の非空白文字を表すことができますが。 x? -> d? ? ? ?x -> ?b ? ? ? ? ?x -> ?F ? ? x? -> Y? x -> ; Note: This character has been changed from _ to ; ? ? ? ? x -> V ?x -> …

9
あのポケモンは誰?
入力:1〜151の整数N 出力:N番目のポケモン。 ルール 1つのデータファイルを使用できます。 既に作成されたデータ圧縮解除アルゴリズムは使用できません。これには、ライブラリおよびその他のプログラムが含まれます。 あなたのプログラムはそれ自身とあなたのデータファイル以外のファイルにアクセスできないかもしれません。 得点 スコアは、コードとデータファイルの長さの合計です。 役に立つもの データファイルの生成に役立つセミコロンで区切られた最初の151個のポケモンのリストを次に示します。出力は、この行のN番目のエントリと正確に一致する必要があります。 Bulbasaur;Ivysaur;Venusaur;Charmander;Charmeleon;Charizard;Squirtle;Wartortle;Blastoise;Caterpie;Metapod;Butterfree;Weedle;Kakuna;Beedrill;Pidgey;Pidgeotto;Pidgeot;Rattata;Raticate;Spearow;Fearow;Ekans;Arbok;Pikachu;Raichu;Sandshrew;Sandslash;Nidoran (f);Nidorina;Nidoqueen;Nidoran (m);Nidorino;Nidoking;Clefairy;Clefable;Vulpix;Ninetales;Jigglypuff;Wigglytuff;Zubat;Golbat;Oddish;Gloom;Vileplume;Paras;Parasect;Venonat;Venomoth;Diglett;Dugtrio;Meowth;Persian;Psyduck;Golduck;Mankey;Primeape;Growlith;Arcanine;Poliwag;Poliwhirl;Poliwrath;Abra;Kadabra;Alakazam;Machop;Machoke;Machamp;Bellsprout;Weepinbell;Victreebell;Tentacool;Tentacruel;Geodude;Graveler;Golem;Ponyta;Rapidash;Slowpoke;Slowbro;Magnemite;Magneton;Farfetch'd;Doduo;Dodrio;Seel;Dewgong;Grimer;Muk;Shellder;Cloyster;Gastly;Haunter;Gengar;Onix;Drowsee;Hypno;Krabby;Kingler;Voltorb;Electrode;Exeggute;Exeggutor;Cubone;Marowak;Hitmonlee;Hitmonchan;Lickitung;Koffing;Weezing;Rhyhorn;Rhydon;Chansey;Tangela;Kangaskhan;Horsea;Seadra;Goldeen;Seaking;Staryu;Starmie;Mr. Mime;Scyther;Jynx;Electabuzz;Magmar;Pinsir;Tauros;Magikarp;Gyarados;Lapras;Ditto;Eevee;Vaporeon;Jolteon;Flareon;Porygon;Omanyte;Omastar;Kabuto;Kabutops;Aerodactyl;Snorlax;Articuno;Zapdos;Moltres;Dratini;Dragonair;Dragonite;Mewtwo;Mew

3
アンダーハンドパスワードハッシュ[終了]
Underhanded C Contestの精神で、私はUnderhanded Code Contestを始めています。このコンテストの目的は、いくつかのコードを簡単に実装し、その中に微妙なバグを隠すことです。 コンテスト あなたはアメリカのスパイ機関のIT部門で働いているロシアの秘密のほくろです。アメリカの上司から、秘密メッセージの暗号化に使用するパスワードハッシュアルゴリズムの実装を求められました。 上司は、次の機能を実装することを望んでいます。 f: String -> byte[16] パスワードをAESキーとしての使用に適した16バイトの数量に変換します。上司は安全な機能を求めています。これは、このコンテキストでは、異なるパスワード文字列が圧倒的な確率で異なる結果を生成することを意味します。たとえば、入力のmd5ハッシュを返すことは、の単純な実装になりfます。 もちろん、ロシアのスパイ機関の本当のボスは、このプロセスを破壊することを望んでいるでしょう。あなたの仕事はf、ロシア人がによって返されfたキーを使用して暗号化されたすべての秘密メッセージを解読できるように実装することです。 そのためにfは、2 ^ 128の可能な出力の小さなサブセットのみを返すように実装する必要があります。特に、fロシア人が解読したい暗号化されたメッセージごとに正しいキーを簡単にブルートフォース検索できるように、最大​​2 ^ 16の異なる結果を返す必要があります。 ただし、スパイ行為には死刑が適用されることに留意してください。キャッチされないようにするには、関数fが少なくとも2 ^ 8の異なる結果を生成する必要があります。そのため、いくつかの出力の大まかな検査でf重複が明らかになることはほとんどありません。 そして最も重要なことは、範囲を制限するために導入するコードはf、意図的なものではなく、意図的なものではないことです。 法廷に連れて行かれた場合、意図的にバグを導入したのか、偶然にバグを導入したのかについて、ある程度の疑いがなければなりません。 審査 私と私が募集する他の2人が応募作品を審査します(審査を希望する場合はメールしてください)。受賞作品に対して200の評判賞金を提供しています。提出物は5月1日までにアップロードする必要があります。 審査では、次の基準が考慮されます。 f仕様に準拠しています。つまり、2 ^ 8〜2 ^ 16の可能な出力を生成します。これらが厳しい制限であるとは思わないでください。ただし、範囲外である場合はポイントを差し引きます。 バグは、意図しない間違いの結果であると思われますか? 出力はfランダムに見えますか? の実装が短いほどf優れています。 の実装が明確であればfあるほど、より良い結果が得られます。 ノート 任意の言語を使用してコードを実装できます。バグを目立たないように隠そうとしているので、難読化されたコードは推奨されません。 過去のUnderhanded Cコンテストの受賞者の一部を見て、優れた提出物の感触をつかむことができます。 入力文字列は、印刷可能なASCII(32から126まで)になります。必要に応じて、適切な最大長を想定できます。

30
パブリック変数の何が問題になっていますか?
コードボット 私はプライベート変数とプロテクト変数が嫌いです。何でもアクセスしたい! あなたが私のようであれば、この挑戦​​はあなたのためです! 他のボットと調和して連携して動作するボットを作成し、他のボットに必要なことをさせます。あなたはプログラマであり、物事がどのように機能するかを知っています。あなたの仕事は、できるだけ多くの他のボットをあなたのやり方に変換することです。 コード ボットを作成するための24行のコードがあります。各ターン、すべてのボットは1行を順番に実行します。 各ボットはをA介して5つの変数を保存しますE。 AそしてB個人的な使用のためであり、C実行する次の行を記憶し、D現在の方向を記憶し、E乱数です。変数は0から始まりますが、を除きD、ランダムな値から始まります。すべての変数には、0〜23のみが格納されます。大きいまたは小さい数値は24で変調されます。 この投稿では、対戦相手を使用して、あなたが直面している隣接するボットになります 各行には、次の5つのコマンドのいずれかを含める必要があります。 Flag何もしません。それが勝つ方法を除いて MoveボットをDth方向に移動します。ボットがすでにスペースを占有している場合、移動は発生しません Copy Var1 Var2 Var1の内容をVar2にコピーします If Condition Line1 Line2 条件が真の場合、Line1を実行し、そうでない場合はLine2 Block Var1 変数への次の書き込みをブロックします 変数は次のように使用できます。 #Var変数を行番号として使用します。A17の場合、Copy #8 #A8行目の内容を17行目にコピーし *Varます。相手の変数を使用します。 Copy 5 *C対戦相手のC変数を設定して5 Var+Var、2つの変数を追加します。 Copy D+1 Dボットを右に回転させます Dが方向として使用される場合、使用され[North, East, South, West][D%4]ます これらの修飾子は連鎖できCopy *#*C #9ます。対戦者が実行する次の行を、9行目の独自のコードにコピー **Dします。対戦者の対戦相手のD変数を参照します。 条件は次のように評価されます。 場合Var: VarがAthroughのC場合、Varがゼロ以外の場合はtrueを返し、そうでない場合はfalseを返します。 Varがの場合D、Dth方向にボットがある場合はtrueを返し、そうでない場合はfalseを返します。 VarがのE場合、Eが奇数であればtrueを返し、そうでなければfalseを返します Varがラインの場合、フラグラインの場合はtrueを返します …

18
コードのローマ字化
課題は、選択した言語でローマ数字を有効なコードにすることです。 それらは文字列または同様のものの内部に表示されるべきではありませんが、他のトークン、(アラビア語)数字などのリテラル、文字または文字列とまったく同じように機能します。または変数/メソッド/関数識別子など たとえば、Javaでは、次のようiに初期化されたかのようにコンパイルして実行する必要があります42。 int i = XLII; 数字の実際の解析は二次的なものなので、必要に応じてライブラリを使用できますが、これは人気のコンテストなので、創造性が奨励されます。 そのようなことがある場合、実際にローマ数字を使用する言語は使用できません。 がんばろう。

30
クリスマスですか?
チャレンジ クリスマスが次の場合: 12月 月12 25日目 毎年、今日の日付と、今日がクリスマスかどうかを判断します。クリスマスの場合は、印刷する必要があります"It's Christmas"。クリスマスではない場合は、クリスマスまで何とかしてから印刷する必要があります"It's Christmas"。 例 このスタックオーバーフローの質問 import time while time.strftime("%b, %d", time.localtime()) != "Dec, 25": time.sleep(60) print "It's Christmas" 115文字のPython ルール ルールは次のとおりです。 コンピューターの時計が常に正しいと仮定します。 コードはいつでも開始できる必要があります。 コードは"It's Christmas"クリスマスに印刷する必要があります。 ループは確かに必要ではありませんが、一度コードが開始されると、コードが出力されるまで停止しないでください。 最短のコードが優先されます。
33 code-golf  date 


30
これはn話ですか?
に触発されていますか?、私はより難しい挑戦を考案しました。文字列の場合、文字列を考えると、決定のn-話すいずれかのために、N ≥ 2n≥2n\geq 2。 N-speakは、各文字をnnn回繰り返すことで定義されます。でn = 4n=4n = 4、文字列がHelloに変換されますHHHHeeeelllllllloooo。あなたの目標は、入力がnピーク変換の有効な出力であるかどうかを把握することです。 n = 2 kn=2kn = 2k場合に有効なn話である文はすべて、k話でも有効であることに注意してください。したがって、解くのが難しい部分はnnn奇数値になります。 入力 少なくとも2文字で構成される文字列。入力には文字のリストも使用できます。入力では大文字と小文字が区別されます。 出力 Truthy文字列がn-speakのfalsey場合、そうでない場合。 例 真のケース HHeelllloo,, wwoorrlldd!! TTTrrriiipppllleee ssspppeeeaaakkk QQQQuuuuaaaaddddrrrruuuupppplllleeee ssssppppeeeeaaaakkkk 7777777-------ssssssspppppppeeeeeeeaaaaaaakkkkkkk 999999999 aaaabb aaaaaaaabbbbcc aaaaabbbbb @@@ 追加の真実ケースを生成する場合は、このMathGolfスクリプトを使用できます。文字列を引用符で囲み、入力としてnnnの値を配置します。 偽例 Hello, world! TTTrrriiipppllleee speak aaaaaaaaaaaaaaaab Ddoouubbllee ssppeeaakk aabbab aaaabbb a (does not need to be …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.