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

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

21
月曜日のミニゴルフ#2:長いテキストの切り捨て
月曜日のミニゴルフ:毎週月曜日に(願わくば!)投稿された一連の短いコードゴルフチャレンジ。 多くのWebアプリケーション(特にソーシャルメディア)は、長いテキストの一部を自動的に切り捨てて、アプリの書式に収まるようにします。この課題では、テキストのパッセージを特定の長さに自動的にトリミングするアルゴリズムを作成します。 チャレンジ チャレンジの目標は、2つの引数を取るプログラムまたは関数を作成することです。 T、切り捨てるテキスト。 L、返される最大長。 そして、次のロジックで切り捨てられたTを返します。 Tの長さがL以下の場合、切り捨ては不要です。元の文字列を返します。 Tを長さL -2に切り捨てます。これにスペースまたはハイフンが含まれていない場合、Tを正確にL -3文字に切り捨てて、その後に省略記号を続けて返し...ます。 それ以外の場合は、結果の末尾を最後のスペースまたはハイフンまでトリミングします。省略記号...を追加して、結果を返します。 詳細 TおよびLは、任意の順序で任意の形式で使用できます。 3 < L <2 31と仮定できます。 U + 2026 Horizo​​ntal Ellipsisは使用できません…。3つのピリオドを使用する必要があります。 入力はスペースまたはハイフンで始まりません。 入力には、通常のスペース以外の空白は含まれません。(タブ、改行などはありません) テストケース 入力: "This is some very long text." 25 "This-is-some-long-hyphen-separated-text." 33 "Programming Puzzles & Code Golf is a question and answer site for programming …
25 code-golf  string 

8
CSSカラーゴルフ!
あなたはWeb開発者であり、あなたの上司が会社のWebサイトを更新することに決めました。彼は、色が少ないほど良いと判断しましたが、サイトが同じように見えることを望んでいます。あなたは彼が何を話しているのか彼が何も知らないと決定するだけですが、あなたは退屈しているので、とにかく試してみるつもりです。会社には数千のWebページがあり、各Webページには独自のCSSがあるため、必要な変更を行うスクリプトを作成することにします。HTMLの解析は必要ありません。 現在、すべてのページでrgb(255,0,0)色のような文字列が使用されています。CSSカラー属性のRGB値を(この順序で)表す3つの10進数値を指定すると、その色の最短文字列表現を返すか印刷し、次のようにCSSで使用できるようにしますcolor:<your-result-here>;。 有効なCSSカラーキーワードの完全な表を次に示します。大文字と小文字は区別されません。 例: 色は12ビットまたは24ビットで定義できることに注意してください。パターン#ABCはの短縮バージョンです#AABBCC。チャックノリスは色です。 プログラムは、文字列ではなく3つの整数のみを取ります(後述の「ボーナス」を除く)。 0, 0, 0 -> #000 (same as #000000, but shorter) 255, 0, 0 -> red 0, 128, 128 -> TEAL 139, 0, 0 -> DarkRed (OR #8B0000) 72, 61, 139 -> #483D8B 255, 255, 254 -> #fffffe 255, 85, 255 -> #f5f (same as …
25 code-golf  css 

19
無限のFTW
無限フィボナッチ列は、特定の有限バイナリワードの繰り返し連結することによって計算される二進数の無限配列です。 私たちは、その定義できフィボナッチ型単語列(又はFTW配列が)任意の配列である ⟨W N ⟩次のように形成されています。 2桁の2つの任意の配列の開始。これらの配列をW -1およびW 0と呼びましょう。 それぞれについてN> 0、ましょうW N ≔W N-1 ∥W N-2 、∥は連結を意味します。 再帰的な定義の結果、W nは常にW n + 1のプレフィックスであり、したがってすべてのW k k> nとなるような。意味で、この手段配列⟨W N ⟩無限ワードに収束します。 正式に、聞かせてWが∞ようにのみ無限アレイでWがNの接頭辞であるW ∞すべてのためのn≥0 。 上記のプロセスで形成された無限の単語を無限FTWと呼びます。 仕事 2つのバイナリワード受け入れプログラムまたは機能書き込みW -1及びW 0を入力とし、印刷W ∞を以下、追加のルールを遵守し、: 任意の順序で単語を受け入れることができます。2つの配列、配列の配列、2つの文字列、文字列の配列、または選択した区切り文字を持つ単一の文字列として。 区切り文字なしで、または隣接する数字の各ペア間に一貫した区切り文字を使用して、無限ワードの数字を印刷できます。 すべての目的で、コードがメモリ不足にならず、そのデータ型がオーバーフローしないと仮定します。 特に、これは、クラッシュの結果であるSTDOUTまたはSTDERRへの出力が無視されることを意味します。 1分とパイプに、その出力のため、私は私のマシン上でコードを実行した場合(インテルi7-3770、16ジブRAM、Fedoraの21) wc -c、それは、少なくとも百万数字を印刷する必要がありW ∞について(W -1、W 0) =(1、0)。 標準のコードゴルフ規則が適用されます。 例 レッツW -1 …

5
ナショナルスケジューリングコンフリクトチャンピオンシップ
(1542:Scheduling Conflict が現在のxkcdである間にこれを投稿するつもりでしたが、スケジューリングの競合がありました。) 入力 入力は3n、nイベントを表す要素のリストになります。3の各グループの最初の要素はイベントの名前になります。2番目と3番目、それぞれ開始時刻と終了時刻。例えば: foo 12 34 bar 56 78 foo「時刻12」で始まるイベント(時刻は単純に整数で表されます。時刻は真夜中過ぎの分と考えることができます)と34で終了しbar、56で始まり78で終了する2番目のイベントを表します。 イベントの名前は常に英数字のみで構成され、時刻は常に0以上1440未満の整数になります。終了時刻は常に開始時刻より少なくとも1大きくなります。それらは、いかなる方法でもソートされることを保証されません。 必要に応じて、スペースで区切られた単一の文字列としてこれを使用できます。それ以外の場合は、配列、リスト、ベクトル、または言語の同等物として取得する必要があります。 出力 出力は、スペースで区切られたイベント名のリストである必要があります。出力するイベント名のルールは次のとおりです。 出力するイベントが互いに競合することはありません。たとえば、input a 0 10 b 5 15では、時間が競合するため(つまり、部分的に重複するため)、両方aを出力することはできませんb。イベントが別のイベントの開始と同時に終了する場合、両方を含めることができます。 NSCC「National Scheduling Conflict Competition」と呼ばれるイベントを出力することはできません。このイベントでは、常に入力に1つが含まれます。また、競合する(少なくとも部分的に重複する)イベントを少なくとも1つ出力する必要がありますNSCC(常に少なくとも1つが存在します)。 上記の2つのルールに従って、できるだけ多くのイベントを出力する必要があります。(これは、できるだけ忙しいように見えるようにするためです。そのため、NSCCの欠落はより信頼できるように見えます。) これは、単一のスペースで区切られた文字列または配列、リスト、ベクトルなどとして出力される場合もあります。 複数の出力が存在する可能性があります。 テストケース リストされている出力は例にすぎないことに注意してください。上記の3つのルールに従っている限り、コードは異なるものを出力する可能性があります(特に、これは例と同じ量のイベントが存在する必要があることを意味します)。 In:UnderwaterBasketWeavingConvention 50 800 NSCC 500 550 Out:UnderwaterBasketWeavingConvention In:SconeEating 0 50 RegexSubbing 45 110 CodeGolfing 95 105 NSCC 100 …
25 code-golf 

8
あなたの全単射基底はすべて私たちのものです
バックグラウンド 全単射ベースBの記数、bは正の整数であるが、の使用なる全単射位置表記でのbの関連値を有するシンボル1に、B。 非全単射とは異なり、値が0のシンボルはありません。このようにして、各非負整数nは全単射基底bで一意の表現を持ちます。 一般的な全単射の数え方には、単項全単射の基数2(bzip2のランレングスエンコーディングで使用)および全単射の基数26(スプレッドシートの列の番号付けに使用)が含まれます。 定義 この課題では、シンボルの集合Mを次のように定義します。 123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz<=> 機能IからMの自然数ようにI( '1')= 1、...、I( '>')= 64。 基地所与Bとの間の1及び64(両方を含む)、我々は、各非負整数ように定義N列に対応するK ... 0のシンボルからなるM、その結果、N = BのK I(K)+を…+ b 0 i(a 0)。 この対応は明確で全単射です。空の合計は0として定義されるため、整数0は空の文字列としてエンコードできます。 仕事 入力として3つの文字列を受け入れます。 入力ベースBとの間の1と64全単射塩基としてエンコード、64列。 全単射の基底b文字列としてエンコードされた非負の整数n。 出力ベースBとの間の1と64全単射塩基としてエンコード、64列。 これらの3つの入力が与えられたら、nを全単射の基本B文字列としてエンコードします。 テストケース すべてのテストケースは、入力をb、n、Bの順に指定します。 Input: "4" "" "8" Output: "" Input: "A" "16" "2" Output: "1112" Input: "2" "122" "A" Output: "A" Input: …

4
何時ですか?
手首に3つの時計を装着することで、文字通り時間を節約するのが好きです。問題は、それぞれ異なる時間を与えることです。1つの時計は実際の時刻からx分遅れています。1つの時計は実際の時間よりx分進んでいます。最後の時計は実際の時間を示しています。 問題は、どの時計の時刻が正しいかわからないことです... 各時計に表示される時間から、実際の時間を決定します。時間を判断できない場合は、「Look at the sun」を印刷してください。 入力: 単一のスペース文字で区切られた3つの読み取り値:H1:M1 H2:M2 H3:M3 各読み取り値で、H1、H2、H3は表示時間(0 <H1、H2、H3 <13)を表し、M1、M2、M3は表示分(0 <= M1 、M2、M3 <60)。分数が10未満の場合、入力の先頭に0が追加されます。同様に、時間数が10未満の場合、入力の先頭に0が追加されます。 出力: The correct time is HH:MMここで、HH:MMは正しい時刻です。正しい時間を特定できない場合は、が表示されますLook at the sun。 入力1: 05:00 12:00 10:00 出力1: The correct time is 05:00 入力2: 11:59 12:30 01:01 出力2: The correct time is 12:30 入力3: 12:00 04:00 08:00 …
25 code-golf  date 

16
2つの惑星の名前を与えられ、距離を与える
次の表(source)を使用して、2つの惑星の名前を取得し、それらの間の距離を返すコードをいくつか作成します。 +-------------------+---------------+ | Planets | Distance (km) | +-------------------+---------------+ | Mercury -> Venus | 50290000 | | Venus -> Earth | 41400000 | | Earth -> Mars | 78340000 | | Mars -> Jupiter | 550390000 | | Jupiter -> Saturn | 646270000 | | Saturn -> Uranus | 1448950000 …

12
あなたの仲間はどこに座りますか?
あなたと何人かの仲間はボウリングをしています。合計N個のボウラーがいます。ただし、座れるのはN -1の椅子のみです。解決策は簡単です。その後、順番が終わると、次に行く人の椅子に座ります。 例を見てみましょう。あなたの名前はAで、4人の友人の名前はB、C、D、Eであるとします。すべてのプレーヤーはアルファベット順に移動するため、最初に移動します。5人のプレイヤーがいるので、4席のみです。友人は次の順序で4つの席に座っています。 CEBD あなたが行って、いや、ストライキをする!それはだBあなたが彼の椅子に座っているので、次のターン。これは次のようになります。 CEAD Bが行く。ガターボール!その後、彼はCのスポットに座り、Cは次のターンに進みます。 ビーズ その後、Cはに座っているDさんの椅子。 BEAC そしてDはに座っているEさんの椅子 BDAC そして最後に、Eはあなたの椅子に座っています。 BDEC 皆さんの席が(擬似)シャッフルされていることに気付くでしょう。Xが回った後、誰がどこに座っているのかを知る必要がありますか? 入力 プログラムは、ユーザーからの2つの入力、文字列と数値を受け取る必要があります。プロンプトは必要ありません。文字列は1〜51文字のアルファベット文字(BZとaz)で、繰り返しはありません。これは、友達が座ることを選んだ順序を表します。大文字のAはありません。大文字であるため、常に最初に移動します。数は、あなたとあなたの友人がプレイするラウンド(ゲームではない)の合計数になります。この数は正で、適切なサイズ(1000未満)になります。 出力 あなたのプログラムは、Xターン後に友人が座っている順番と、誰の順番かを印刷する必要があります。したがって、たとえば、Xがターンした後に注文がBEDGCAHFであり、それがZのターンであった場合、プログラムはこれを正確に印刷する必要があります。 BEDGCAHF It is Z's turn. 次に、入力と出力のサンプルをいくつか示します。 input: E, 4 E It is A's turn. input: E, 5 A It is E's turn. input: Bb, 2 AB It is b's turn. input: …
25 code-golf  string 

3
レオンハルトはラビリンスが大好き
背景 私の息子のレオンハルト(4歳)は、迷宮が大好きです。私は彼がどこから迷宮を知っているのかわかりませんが、彼はそれらを描いて、それらがどのように機能するかを非常によく知っています: 最近、彼は彼の絵からゲームを作り始めました。これらは彼のルールです: 黒い四角は開始点を示します。 フックはラビリンスの出口を示します(そこから引き出します)。 王冠を集めることができます。 金塊(丸いもの)を集めることができます。 前後に移動できますが、それ以上はできません。 矢印で出口に案内される場合があります。(もし彼が解決するために迷路を描いたら、彼らはしばしば誤解を招くでしょう) 注釈付きバージョン: 青:出発点 オレンジ:クラウン 黄色:金塊のあるエリア 緑:フック(終了) ピンク:矢印(ほとんど誤解を招く) タスク おそらく、4歳のときに子供たちはポーキーパイを言い始め、時には彼が自分のルールに従わないこともあります。特に彼が迷路の終わりに到達できないことに気付いた場合はなおさらです。 それがあなたの出番です:とにかく子供向けのゲームを探しているので、あなたは彼のアイデアを不正行為ができないゲームに変えます。 さて、私は私が言うことになるいくつかの定義が必要です: 活躍の場はあるn* m同じ大きさの正方形の長方形。 正方形には、各辺に1つずつ、0〜4個の壁があります。 クラウンは50ポイントの価値があります。 金塊は20ポイントの価値があります。 すでに歩いた正方形を歩くと、1ポイント減ります。 四角は、プレーヤーがその上を歩いた頻度(0、1、または2回)を識別する方法でマークされています プレーヤーは、壁がある場合を除き、4方向に歩くことができます。 入力デバイスは何でもかまいません。キーボードのサポートを検討してください。 ラビリンスは解決可能でなければなりません。すなわち、開始点からフックに到達することが可能でなければならず、すべての貴重品を収集することが可能でなければなりません(それが最高のスコアをもたらさない場合でも)。 プレイヤーが動けなくなると、ゲームは終了します。 プレイヤーはボードから落ちて死んではいけません。好きなように、完全な迷路の周りに壁を置いたり、端を包むことができます。 プログラムは入力としてワード(0-65535)引数を取ります。これは、乱数ジェネレーターのシードです。同じシードを使用してプログラムを再度呼び出すと、同じ迷路になります。 ボーナス: 収集できる最大ポイントを計算します。-1ポイントのために、すべてのアイテムを収集しない方がよい場合があることを考慮してください。 最適なソリューションを表示する(最大ポイントを取得する最短の方法) ルール 私はコードを読んで理解し、おそらく私の息子の新しいアイデアに適応できるようにしたいので、これは人気のコンテストです。ゴルファーをコーディングしてください。おそらく、ゴルフにもっと適したルール(たとえば、すべてのキャラクターが定義されたコンソールバージョン)を使用して、この質問のコピーを作成します。 5月3日に最も人気のあるゲームが受け入れられます。そして、ちょっと、アプリストアで公開してみませんか?

30
2つの数値を比較する
チャレンジ 二つの整数を考えるAとB、入力として、あなたは、次の場合に出力するプログラムを作成する必要がありA>B、A==BまたはA<B。 整数は、少なくとも256個の値を含む、言語でサポートされる任意の妥当な範囲になります。 プログラムは、STDINまたは関数の引数を介して入力を受け取る完全なプログラムまたは関数のいずれかです。 出力 もし A>B出力する A is greater than B もし A==B出力する A is equal to B もし A<B出力する A is less than B 置換する場所AとBその整数値。 勝ち バイト単位の最短プログラムが優先されます。 リーダーボード var QUESTION_ID=55693,OVERRIDE_USER=8478;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o …
25 code-golf  number 

3
巨大なBoggleボードでプログラムを探す
テキストのこの64 x 64ブロック内の各文字は、95個の印刷可能なASCII文字からランダムかつ均一に選択されています。 /rq$:Zy5*g'$DeGXX2o8y "{@Cg:FR9qih}xh >5$DsF1Fs5Ao~smFp;.RJbV )U c4\(|Sx*V$10G9xO:NjHKasem%,\9[pPm@&kTaN~HC[;9`lgqlAH(7dt0a-5}LJ[ &sifw9V-.PLRoD~F'dJYA^Q)L#h>$9h!B4b&ceKp8~HndzDm#1/ySydrf5T8[Y%4 U9>HLQ74Qf[^V9tpWrKFcFxZJ::4?z/o]3u,V[B&hB9lFYA0:rW#yql5z9.d*D}U :M2*O9'7_HMGw_=%@hR>O+(@Dr6MIt(=/{-{4lia0Vmws32wr(fnTmT%HSo&7!uz \KZWG&KnXh+6E+Q>%pV(<Bnm-d+p~y~]Ta"aw9)]0A_AHz\tP3&}1R^/yPPSgN?8 ".7|Uj)S7-k[`yeLO~P2a?z3wiS(R-\k'?z(pVm;;D^k/q84?&7:,E*9$UQ"UbBJ ME]&*R ,*7PDF4Tw*-;De{YeP_al.CJcJX`@V_y+>^<h{L[^Y"!RxjN^lyA_/Y=( #C>Zo#Sl;UUD5ChIj'L@rkELk%S*]a$87j\\n;}796m/\NPL>8d-T-hR!7ftw ?A tV5"E309bAv$jhE6\'8f?VGlBb?z#V;F((3'|}$tfpiNB>"*mxc,X1s:/%x*JQAL rxYXUJsd?X}^yc|'16539vd=psU'>|y/!$-TRamKcJk^2-aD35h7CcaRNue"8#{; @yUq?*(72I8@I)So+]RwtKy:mLhjG/f#:U<TXml<PtX*+,ngfZt75-q*gSsyI2tS |*M*;yz6u2(LZ>W`bth-7G~>|dh'pm}]@"#Oq9%o\W)b,gh%b1O]4F:EGb7ERI=@ ehMo69slKw=S@<j*Q4sfd\1')#)V&yaPF%%ZG6VK\_-$Cab,nrlW"O(<tu&xU=I& |[g4k2L;FD)=yX0SsE-|vI(mDOccuU(+m\wxgrJxi8ZP[uD)L.!K@]%@q`!pk8Yx ?PZaS3;x,7nK~IHlrCGy~xq:@K/CJ1J^oeac&Tv?6[H>>0lu?(/bh@6J^@S?IY-| @tdN$K=Ci2;_0Du;L2OO'en|]<_`nX5p3Bes9`8{}fRCV$X&aoQGYS'$j%r<2709 UwETsAo^d!aUZ0vN5,Yq\n%JAIm}%O88FAJK^Jt&=jM\Q1^+^|X8\._"l%hlF+yH +c^FBFxTGz|f|#kElQs)mS64-3Z\An]|[rQo"OQ+ IP"ARdJ}/OYFQF_/{B 73mU UPvxNByN[2TT,XgRZ_LwolUVWuR)DjYI7j#mmA8m?&Y}}[_h8@Y-R*,#=1\D*&@* ePW.w{@z3moe3Vztd,>?*~ZQUvn8$+xw$$f92D*kPZ":;lcTr3m&{*?j$FgZK|cU IAd'0C{<4b}NuhX1B#gmk'oF4+(@fzP^T?hF/#]g^y rb5][)X-d4Q't~1]HE"tZ p2Z,%H0$EWF/%|UQm?&]E~=v;9YwxrSs%}df`[ `SfXMJWt86UY1duGAAKkFSrH! oUyB[soS!N%XYwX]%n K^}CcTE?~.,8`C&l)Jjjp5|z))!o/ "G)sj,{OETsi:KE 4E,':a=,T~YlxdF^<\$fE|f:_-RG}7=m%g\-9a*X]`n<P$D+q7O`+$P&!\"NUs7n hL@0s 7i^Xp\._4$lZIB9Ql AXX_00K=<hp%55KSO6yWH~cGe%|(p_WzlhPUbH{? o5b4pi(,]&&jB\hGa:\DQbrYc,n|,b)_E{n~i~+JSxn?%/qJVm|B 8"Jf||L.|M- KRxH;T^Z7%ZufyO=nI;[v1\8ZTg\_)ect4DvMTvqtoo(;b~J&'~E2TTD!w1BvGv Q+1sv>q%1$BaCm%(\%uGH*]emoFwejkhb$gKm=DVG#&:p'";s)&MY30q_cG=.CKJ q,aWTi|^w2wg3<G_y<n+^Xq2ymHFs#7z[x0l'Lz6N>Mpo?=hAd&58HVMhsh(kQH5 &kSivkn`,KON9xb:$M[L15!D6W?\ASWc#}V#2U;qxKhtil73,!iuG~(lr[tPJQ6w IZ)0Vp{kEUID:vgwmTMQ#Y]NdX6{'/3bI2x9k 4[>j)&Q0U,t,iA#A%4929o6+n_ …

21
ASCIIチェッカーボードを描く
概要 最近のASCIIアートチャレンジの人気に触発され、このチャレンジの目的は、チェスをプレイできるようなASCIIチェッカーボードを描くことです。 n引数としてstdin、またはユーザー入力として正の整数を取るプログラムを記述し、1文字の太さの境界線とともにnxのn正方形のチェッカーボードを出力します。 各正方形は2x2文字でなければなりません。正方形は、通常の交互の白黒(市松模様の左上隅のように白が最初)のパターンに従う必要があります。白い四角はスペース()文字で作成し、黒い四角はポンド(#)文字で作成する必要があります。 境界線は、境界線または正方形の垂直点に-プラス(+)を付けたダッシュ()で作成する必要があります。 入力 チェッカーボードに描画する正方形の数(正方形の寸法)を表す正の整数。各正方形は2x2文字です。 結果の例 n=2 +--+--+ | |##| | |##| +--+--+ |##| | |##| | +--+--+ n=3 +--+--+--+ | |##| | | |##| | +--+--+--+ |##| |##| |##| |##| +--+--+--+ | |##| | | |##| | +--+--+--+ n=4 +--+--+--+--+ | |##| |##| | |##| |##| +--+--+--+--+ …

2
正規表現パターンの半順序付け
この課題のために、部分文字列だけでなく文字列全体がパターンと一致する場合、正規表現パターンは文字列と一致すると言います。 与えられた2つの正規表現のパターン A と Bは、我々はと言う Aが され、より専門よりも B で一致したすべての文字列ならば Aは またで一致している B の周りに他の方法ではありません。私たちは、と言う Aが あると同等に B の両方のパターンが正確に文字列の同じセットと一致している場合。パターンが他のパターンよりも特殊化されておらず、同等でもない場合、A とB は比較できないと 言い ます。 たとえば、パターンHello, .*!は、より特殊です.*, .*!。パターン(Hello|Goodbye), World!とHello, World!|Goodbye, World!は同等です。パターンHello, .*!と.*, World!は比較できません。 「より専門化された」という関係は、正規表現パターンのセットの厳密な半順序を定義します。特に、すべてのパターン A および Bについて、正確に次のいずれかが当てはまります。 A はBよりも特殊化されています (A < B)。 B はAよりも特化されています (A > B)。 A と B は同等です(A = B)。 A …

7
基本的なPythのような構文チェッカー
Pythは、Pythonに基づいたゴルフ言語です。プレフィックス表記を使用し、各コマンドは異なるアリティ(受け入れる引数の数)を持ちます。 あなたの仕事は、(存在しない)Pythライクな言語Pithの構文チェッカーを書くことです。 髄の構文 Pithには8つの単一文字コマンドしかありません。 01234()" 01234それぞれが対応する数のアリティを持っているため、その後に多くの引数が必要です。例えば、 400010 正しい髄プログラムがあるためである4四つの引数が続いている0 0 0と10されたのは、最後の1単一の引数が続きます0。これを視覚化するために、次のツリーを見ることができます。 R | 4 | ------------- | | | | 0 0 0 1 | 0 どこRがルートノードです。これについて考える別の方法は、各数値が、対応するノードが上のツリーに持つ子の数を指すということです。 次に、複数のベースコマンドを使用した別の有効なPithプログラムを示します。 210010 対応する R | ------------- | | 2 1 | | --------- 0 | | 1 0 | 0 一方、 3120102100 イニシャルには2つの引数しかないため、正しいPithプログラムではありません。3次のツリーを見るとわかります。 R …

11
Goでのゴルフのヒント
Goでゴルフをするための一般的なヒントは何ですか?私はCode Golfingを初めて使い、少なくともGoに特有のゴルフ問題全般に適用できるアイデアを探しています。 回答ごとに1つのヒントを保管してください。
25 code-golf  tips 

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