タグ付けされた質問 「whitespace」

インデントに関連する課題のような、空白文字の処理と配置に関連する課題(主に、スペース、タブ、改行に限定されません)。難解なプログラミング言語のホワイトスペースに関する課題については、代わりに[whitespace-language]を使用してください。

25
コードのネガを印刷する
次のように、辺の長さNの正方形の印刷可能なASCII文字(コードポイント0x20〜0x7E)を考えます(ここではN = 6)。 =\ g \ 7 m+y "g L ~ e> PHq また、各行と各列には、少なくとも1つのスペースと1つの非スペース文字を含める必要があります。(上記の例はこれを満たします。) このような正方形のネガを、同じサイズの正方形と定義します。各スペースは非スペースで置き換えられ、その逆も同様です。たとえば、次の例は上記の例の有効なネガになります。 1234 a b cd ZYXWV ! {} [ ] ? スペース以外の文字の選択は無関係です(印刷可能なASCII範囲からのものである限り)。 挑戦 辺の長さがN> 1の正方形のソースコードを使用してプログラムを作成します。これは、自身のネガをSTDOUTに出力します。末尾のスペースは印刷する必要があります。単一の末尾の改行を印刷する場合としない場合があります。 通常のクインルールも適用されるため、直接または間接的に独自のソースコードを読み取ってはなりません。同様に、入力された各式の値を自動的に出力するREPL環境を想定しないでください。 勝者は、最小の辺の長さNのプログラムです。同点の場合、ソースコードに含まれるスペース以外の文字が最も少ないものが優先されます。まだ同点の場合、最も早い回答が優先されます。

30
伸縮式括弧
正しくバランスの取れた括弧の空でない文字列を考えてみましょう: (()(()())()((())))(()) 括弧の各ペアは、折り畳まれた伸縮構造のリングを表すと想像できます。それでは、望遠鏡を拡張しましょう。 ( )( ) ()( )()( ) () ()() ( ) () 別の見方をすると、深さnの括弧は、水平位置を維持したまま行nに移動します。 あなたの仕事は、バランスの取れた括弧のような文字列を取り、拡張バージョンを作成することです。 プログラムまたは関数を記述し、STDIN(またはそれに最も近いもの)、コマンドライン引数または関数パラメーターを介して入力を取得し、STDOUT(または最も近いもの)、戻り値または関数(出力)パラメーターを介して出力を生成できます。 入力文字列が有効である、つまり、括弧のみで構成されており、それらが正しくバランスしていると想定できます。 各行に末尾のスペースを印刷できますが、必要以上の先行スペースは印刷できません。合計で、行は入力文字列の長さの2倍を超えてはなりません。オプションで、単一の末尾の改行を印刷できます。 例 上記の例に加えて、さらにいくつかのテストケースがあります(入力と出力は空の行で区切られています)。 () () (((()))) ( ) ( ) ( ) () ()(())((()))(())() ()( )( )( )() () ( ) () () ((()())()(()(())())) ( ) ( )()( ) ()() ()( )() …

30
プログラミングパズルからコードゴルフまで
あなたの仕事は、正確な文字列を出力するプログラムを書くことProgramming Puzzlesです(末尾の改行はオプションです)が、すべてのスペース、タブ、改行が削除されると、出力しますCode Golf(末尾の改行はオプションです)。 バイトカウントは、最初のプログラムのカウントであり、そこにはまだスペースがあります。 ノート のスペースはCode Golf 、 Programming Puzzles削除の一部として削除されるため、それに応じて計画してください。 0x09、0x0A、および0x20がそれぞれタブ、改行、またはスペースではないエンコーディングでは、これらの文字は削除されます。 あなたのコードが 42 $@ rw$ @42 その後、それは出力する必要がありますProgramming Puzzles。また、同じ言語で、 42$@rw$@42 出力する必要がありますCode Golf。 これはcode-golfなので、バイト単位の最短コードが勝ちです!幸運を!

12
逆インデント
逆にインデントすると、コードがより速く実行できるため、コンパイラは「ブランチ」の最上部からツリー設計パターンのようにコードを処理できると聞きました。これは、重力によりコードのコンパイルにかかる時間が短縮され、データ構造の効率が向上するためです。Javaスクリプトの例を次に示します。 function fib(n) { var a = 1, b = 1; while (--n > 0) { var tmp = a; a = b; b += tmp; if (a === Infinity) { return "Error!"; } } return a; } しかし、何らかの理由で、メモ帳にはこれを自動的に行う設定がないため、それを行うプログラムが必要です。 説明 提出には、入力としてコードスニペットを使用し、インデントを反転し、結果のコードを出力する必要があります。 これは、次の手順で実行されます。 コードを行に分割します。各行はゼロ個以上のスペースで始まります(タブはありません)。 コード内のすべての一意のインデントレベルを見つけます。たとえば、上記の例では、これは 0 4 8 12 このインデントレベルのリストの順序を逆にし、逆のリストを元のリストにマッピングします。これは言葉で説明するのは難しいですが、例では、次のようになります 0 …

24
重要な空白
空白は、タブ(0x09)、改行(0x0A)、またはスペース(0x20)の3文字のいずれかに定義します。 この課題では、同じプログラミング言語で2つのプログラムまたは関数を作成し、次のタスクを実行します。 指定された文字列の空白文字を数えます。たとえば、入力 123 -_- abc def 7を返します(末尾の改行がない場合)。 空白の連続した実行で特定の文字列を分割します。文字列の先頭または末尾が空白の場合、末尾に空の文字列は返されません。たとえば、同じ入力 123 -_- abc def 戻り["123", "-_-", "abc", "def"]ます。 どちらの場合でも、STDIN、コマンドライン引数、または関数引数を介して入力を取得し、結果を返すか、STDOUTを出力できます。2番目のプログラムでは、STDOUTに出力することを選択した場合、引用符を囲むことなく、各文字列をそれぞれの行に出力してください。 両方のプログラムについて、入力には印刷可能なASCII(0x20から0x7E)と空白のみが含まれると想定できます。 これが問題です。 すべての空白が両方のプログラム/関数から削除される場合、結果の文字列は同一である必要があります。つまり、2つの提出は、空白文字の数と配置のみが異なる場合があります。 いずれのプログラム/関数にも文字列または正規表現リテラルを含めることはできません(言語に指定された文字タイプがある場合、文字リテラルは問題ありません)。 どちらのプログラム/機能にもコメントを含めることはできません。 プログラムのソースコードを直接的または間接的に読み取ってはなりません。 これはコードゴルフです。スコアは、両方のソリューションのサイズの合計(バイト単位)です。最低スコアが勝ちます。 リーダーボード 次のStack Snippetは、通常のリーダーボードと言語別の勝者の概要の両方を生成します。たとえあなたの選択した言語があなたが挑戦全体に勝つことを許さないとしても、なぜ2番目のリストのスポットをひったくってみませんか?人々がさまざまな言語でこの課題にどのように取り組んでいるかを知りたいと思います! 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language Name, N bytes どこNで合計あなたの提出のサイズ。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: # Ruby, <s>104</s> <s>101</s> 96 bytes 合計数の前に個々の数を含めることもできます。たとえば、 # Python 2, 35 + 41 = 76 …

9
Hexagonyソースコードの展開
前書き Hexagonyに詳しくない場合は、MartinBüttnerによって作成された難解な言語です。問題は、この言語がプログラムの複数のフォームを受け入れることです。次のプログラムはすべて同等です。 abcdefg そして a b c d e f g したがって、基本的に、コードは通常の六角形にまとめられています。ただし、コードに新しいコマンドを追加するとabcdefgh、次のプログラムが作成されることに注意してください。 a b c d e f g h . . . . . . . . . . . ご覧のとおり、最初のステップはコードを六角形にロールアップし、その後、六角形は.次の中央の六角形の番号に何もしない()で埋められます。 タスクは単純です。文字列(ソースコード)を指定すると、六角形のソースコード全体が出力されます。 ルール プログラムまたは機能を提供できます。 先頭の空白は許可されますが、六角形の形が崩れない場合のみ 末尾の空白は許可されます。 プログラム内の空白は無視されることに注意してください。だから、a b cに等しいですabc 印刷可能なASCII文字(32 - 126)のみが使用されるため、通常のSpace文字のみが無視されます。 文字列の長さが0より大きいと仮定します。 これはcode-golfであるため、バイト数が最小の提出が勝ちです! テストケース Input: ?({{&2'2':{):!/)'*/ Output: ? …

30
文字列の長さを追加する
チャレンジ: s文字a- z、A- Z、0-の文字列を指定すると9、の長さsをそれ自体に追加し、長さの追加の文字をの全長の一部としてカウントしsます。 入力: 任意の長さの文字列(空にすることもできます)。 出力: 同じ文字列ですが、長さが末尾に追加されます。長さを表す文字も長さの一部としてカウントする必要があります。追加する有効な長さが複数ある場合は、可能な限り短いものを選択してください(例については、テストケースを参照してください)。 テストケース: INPUT -> OUTPUT // Comment aaa -> aaa4 -> 1 // Empty string aaaaaaaa -> aaaaaaaa9 // aaaaaaaa10 would also normally be valid, but violates using the smallest number rule mentioned above aaaaaaaaa -> aaaaaaaaa11 a1 -> a13 // Input can …
51 code-golf  string  code-golf  string  random  code-golf  array-manipulation  code-golf  ascii-art  kolmogorov-complexity  random  code-golf  array-manipulation  code-golf  stateful  code-golf  hello-world  code-golf  string  code-golf  interpreter  lisp  code-golf  restricted-source  quine  palindrome  code-golf  ascii-art  random  generation  challenge-writing  ascii-art  random  polyglot  maze  answer-chaining  string  cops-and-robbers  whitespace  code-golf  string  cops-and-robbers  whitespace  code-golf  number  sequence  code-golf  date  code-golf  ascii-art  decision-problem  code-golf  combinatorics  chemistry  code-golf  kolmogorov-complexity  source-layout  radiation-hardening  code-golf  ascii-art  path-finding  maze  code-golf  string  ascii-art  game  animation  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  restricted-source  new-years 

25
重要な空白:警官
この課題のために、空白をラインフィード(0x0A)とスペース(0x20)のみとして定義します。ほとんどの言語と正規表現フレーバーは、ASCII範囲の内側と外側の両方で、他の多くの文字も同様に空白と見なすため、対応するビルトインを使用できない場合があります。 警官の挑戦 選択した言語でプログラムまたは関数を作成する必要があります。これは、ASCII(NULを除く)文字で構成される文字列を入力として受け取り、すべての空白を削除して出力します。たとえば、次の入力を受け取った場合: H e l l o, W o r l d! 出力する必要があります Hello,World! 提出物は、すべての空白が削除されたソースコードになります(ソリューションに入力としてソリューションを渡すのと同じプロセスですが、ソリューションにはASCII範囲外の文字が含まれている場合もあります)。あなたの目標は、選択した言語で有効なソリューションを回復するために空白を挿入する必要がある場所を把握することを可能な限り難しくすることです。強盗は、削除するよりも少ない空白を挿入できますが、追加することはできません。また、強盗は正確なコードと一致する必要はなく、有効なソリューションを見つける必要があるだけであることを忘れないでください。 あなたの答えは次を含むべきです: ソリューションを作成した言語(および必要に応じてバージョン)。 空白を削除する前のソリューションのバイトカウント。 空白が削除されたソリューション。 ソリューションはプログラムまたは関数のいずれかですが、スニペットではなく、REPL環境を想定してはなりません。STDIN、コマンドライン引数または関数引数を介して入力を受け取り、STDOUT、関数の戻り値または関数(出力)パラメーターを介して出力することができます。 公平を期すために、選択した言語用の無料のインタープリターまたはコンパイラーが必要です。 ハッシュ、暗号化、または乱数生成に組み込み関数を使用しないでください(乱数ジェネレーターを固定値にシードした場合でも)。ソリューションは、適切なデスクトップマシンで100文字以下の文字列を10秒未満で処理できる必要があります。 回答が7日(168時間)以内に解読されなかった場合、回答が安全であると見なされる時点で独自の解決策を明らかにすることができます。解決策を公開しない限り、7日が経過していても、強盗によってまだ解読されている可能性があります。最短の安全な回答が優先されます(空白を削除する前に測定)。 回答がクラックされた場合、対応する強盗の回答へのリンクとともに、回答のヘッダーにこれを記載してください。 強盗の部分はここに行きます。 クラックされていない提出 <script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = 103182;</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script> …

7
川を避ける
バックグラウンド タイポグラフィでは、川はテキストブロック内の視覚的なギャップであり、スペースの偶然の整列により発生します。これらは特にあなたの脳が周辺視でそれらをより簡単に拾い上げているように見え、常にあなたの目をそらします。 例として、次のテキストブロックを見てください。行の幅が82文字を超えないように改行されています。 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eismod tempor incididunt ut labore et dolore maga aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum …

5
私の神、それはスペースでいっぱいです!
一部の人々は、タブとインデントにスペースを使用することを主張します。 集計については、それは間違いなく間違っています。定義により、集計にはタブレータを使用する必要があります。 インデントの場合でも、タブレーターは客観的に優れています。 Stack Exchangeコミュニティには明確なコンセンサスがあります。 インデントに単一のスペースを使用することは視覚的に不快です。複数を使用するのは無駄です。 すべてのゴルファーが知っているように、プログラムはできるだけ短くする必要があります。ハードディスクのスペースを節約するだけでなく、処理するバイト数が少ない場合はコンパイル時間も短縮されます。 タブ幅1を調整することにより、同じファイルが各コンピューターで異なるように見えるため、誰もが実際のファイルを変更せずに好みのインデント幅を使用できます。 すべての優れたテキストエディターは、デフォルトで(および定義)タブレータを使用します。 私はそう言います、私はいつも正しいです! 悲しいことに、誰もが理性に耳を傾けるわけではありません。誰かがあなたに間違ったTMをしているファイルを送ってきたので、あなたはそれを修正しなければなりません。手動で行うこともできますが、他にもあります。 スペーサーが貴重な時間を浪費するのは十分に悪いので、問題を処理するために可能な限り短いプログラムを書くことにします。 仕事 次のことを行うプログラムまたは関数を作成します。 STDINから、またはコマンドラインまたは関数の引数として単一の文字列を読み取ります。 集計またはインデントにスペースが使用されているすべての場所を特定します。 行の先頭にある場合、スペースの実行はインデントです。 インデントでない場合、2つ以上のスペースの実行は集計です。 単一インデントではありませんスペースはや集計のために使用されていない可能性があります。同じキャラクターを異なる目的に使用する場合、予想通り、簡単に伝える方法はありません。したがって、混乱のためにスペースが使用されたと言います。 ファイルの外観を変更せずに、タブまたはインデントに使用されるすべてのスペースをタブレータで置き換えることができる、可能な限り長いタブ幅1を決定します。 入力に表もインデントも含まれていない場合、タブ幅を決定することは不可能です。この場合、次の手順をスキップします。 以前に決定されたタブ幅を使用して、タブまたはインデントに使用されるすべてのスペースをタブレータに置き換えます。 また、ファイルの外観を変更せずに可能な限り、混乱に使用されるすべてのスペースをタブレータに置き換えます。(疑わしい場合は、スペースを取り除きます。) 変更した文字列を関数から返すか、STDOUTに出力します。 例 すべてのスペース a bc def ghij 集計です。 スペースを実行するたびに、前のスペース以外の文字列が5の幅になるまでパディングされるため、正しいタブ幅は5で、正しい出力2は a--->bc-->def->ghij 最初の2つのスペース ab cde f ghi jk lm 集計、その他の混乱です。 正しいタブ幅は4なので、正しい出力2は ab->cde>f ghi>jk lm 最後のスペースは、タビュレーターで置き換えられると2つのスペースとしてレンダリングされるため、変更されません。 ab->cde>f ghi>jk->lm 1つを除くすべてのスペース int …

3
ルービックキューブを解く
ルービックキューブ(3 * 3 * 3)を妥当な時間内に解決する最短のプログラムを作成し、移動します(たとえば、マシン上で最大5秒、1000回未満の移動)。 入力の形式は次のとおりです。 UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (この特定の入力は、解決されたキューブを表します)。 最初の12個の2文字の文字列は、UF、UR、... BL位置のエッジ(U =上、F =前、R =右、B =後、L =左、D =下)であり、次の8 3文字の文字列は、UFR、URB、... DBR位置のコーナーです。 出力は、次の形式で一連の動きを示します。 D+ L2 U+ F+ D+ L+ D+ F+ U- F+ D1またはD +はD(下)面を時計回りに90度回転することを表し、L2はL面を180度回転し、U3またはU-はU面を反時計回りに90度回転することを表します。 …

20
図と地面
ソース:ウィキペディア この課題では、上記の画像の図と背景に似た2つのプログラムを作成し、一方が印刷さfigureれ、他方が印刷されるようにする必要がありgroundます。具体的には: 入力を受け取らず、文字列を出力するプログラムを作成しますfigure。プログラムで許可されている空白文字は、スペース(コードポイント0x20)と改行(キャリッジリターン、0x0D、改行、0x0A、または両方の組み合わせ)のみです。 改行を無視すると、スペース文字(コードポイント0x20)と非スペース文字の数は同じでなければなりません。たとえば、これは有効なプログラムです(仮想言語): ab c d e f 最初の行に末尾のスペースがあることに注意してください。 n番目の空白文字をn番目の非空白文字と交換する場合、プログラムはground代わりに印刷する必要があります。上記の例では、プログラムは次のようになります。 a b cde f 2行目と3行目に末尾のスペースがあることに注意してください。 図と地上の解法はどちらも、STDOUTに出力される同じ言語の完全なプログラムでなければなりません。どちらの場合でも、単一のオプションの末尾の改行を印刷できます。STDOUTが正しい限り、STDERRに何でも出力できます。 任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。 これはcode-golfであるため、バイト単位で測定された最短の有効な回答が勝ちます。 ヘルパースクリプト このCJamスクリプトを使用して、フィギュアとグラウンドプログラムを変換できます。2つのうちの1つを入力フィールドに貼り付けて、プログラムを実行します。また、スペースと非スペースの数が一致しない場合も通知します。 リーダーボード コードスニペットを表示 function answersUrl(a){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+a+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(a,b){return"http://api.stackexchange.com/2.2/answers/"+b.join(";")+"/comments?page="+a+"&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(a){answers.push.apply(answers,a.items),answers_hash=[],answer_ids=[],a.items.forEach(function(a){a.comments=[];var b=+a.share_link.match(/\d+/);answer_ids.push(b),answers_hash[b]=a}),a.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(a){a.items.forEach(function(a){a.owner.user_id===OVERRIDE_USER&&answers_hash[a.post_id].comments.push(a)}),a.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(a){return a.owner.display_name}function process(){var a=[];answers.forEach(function(b){var c=b.body;b.comments.forEach(function(a){OVERRIDE_REG.test(a.body)&&(c="<h1>"+a.body.replace(OVERRIDE_REG,"")+"</h1>")});var d=c.match(SCORE_REG);d?a.push({user:getAuthorName(b),size:+d[2],language:d[1],link:b.share_link}):console.log(c)}),a.sort(function(a,b){var c=a.size,d=b.size;return c-d});var b={},c=1,d=null,e=1;a.forEach(function(a){a.size!=d&&(e=c),d=a.size,++c;var f=jQuery("#answer-template").html();f=f.replace("{{PLACE}}",e+".").replace("{{NAME}}",a.user).replace("{{LANGUAGE}}",a.language).replace("{{SIZE}}",a.size).replace("{{LINK}}",a.link),f=jQuery(f),jQuery("#answers").append(f);var g=a.language;g=jQuery("<a>"+g+"</a>").text(),b[g]=b[g]||{lang:a.language,lang_raw:g,user:a.user,size:a.size,link:a.link}});var f=[];for(var g in b)b.hasOwnProperty(g)&&f.push(b[g]);f.sort(function(a,b){return a.lang_raw.toLowerCase()>b.lang_raw.toLowerCase()?1:a.lang_raw.toLowerCase()<b.lang_raw.toLowerCase()?-1:0});for(var h=0;h<f.length;++h){var i=jQuery("#language-template").html(),g=f[h];i=i.replace("{{LANGUAGE}}",g.lang).replace("{{NAME}}",g.user).replace("{{SIZE}}",g.size).replace("{{LINK}}",g.link),i=jQuery(i),jQuery("#languages").append(i)}}var QUESTION_ID=101275,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",OVERRIDE_USER=8478,answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i; body{text-align:left!important}#answer-list,#language-list{padding:10px;width:350px;float:left}table …

4
コード説明フォーマッター
成功したコードゴルフの提出は、本質的に、至る所に狂ったシンボルで満たされています。投稿を理解しやすくするために、多くのコード愛好家は自分のコードの説明を含めることを選択します。彼らの説明では、コードの行は垂直分解図に変わります。 たとえば、これが私のコードだった場合: 1_'[3:~2@+]` 作成できる多くの図の1つは次のようになります。 1 _' [ ] [3: ] [ ~ ] [ 2@ ] [ +] ` 目標 この課題では、コードの行を取得し、説明テキストを簡単に追加できるダイアグラムを作成する説明自動フォーマットツールを作成します。 これをより便利な課題にするために、ユーザーはフォーマット文字列を提供することにより、各行の内容を指定できます。書式設定文字列は、文字のみを含む2行目でA-Za-z、プログラムと同じ長さです。文字は、説明の中でプログラムの文字を印刷する順序を示しています。 以下は、ブラケットのような書式設定のない I / Oの例です。 123423 AabcBC 1 2 3 2 3 4 ブラケット プログラム内の複数の文字が同じ優先度レベルを持っている場合、その文字セットはコードの単一ブロック(グループを形成する場合)またはブラケットセット(それらが間に他の文字を含む場合)として機能します。一般的なルールは簡単です: 優先順位の高い他のすべての文字が図のその上の行に既に表示されるまで、文字は図の行に表示されません。 同じ優先順位の文字は常に同じ行に印刷されます。特定の文字が行に表示される場合、同じ優先順位の他のすべての文字が行に表示されます。 同じ優先順位の文字のセットは、それに囲まれた他のすべての文字が少なくとも1回現れるまで、各行に現れ続けます。これにより、「ブラケットのような」構造が可能になります。bceab優先度がある場合、b文字は2行目に表示され(2番目に高い優先度です)、すべてのcea文字が表示されるまで表示され続けます。優先度文字列がabcadeafgaである場合、すべてがその中にbcdefg含まれていると見なされ、4 aが出現するまで4 がすべて表示され続けgます。 その他のフォーマット要件 出力のすべての行は同じ長さ(入力行の長さ)で、必要に応じてスペースが埋め込まれている必要があります。入力プログラム行にはスペースが含まれる場合がありますが、これらのスペースにも優先文字が与えられます。出力/入力の末尾の改行はオプションです。 得点 これはコードゴルフで、最少バイトが勝ちます。 例 ここに、より複雑なフォーマットを使用したコードのコメント例を示します。 1_'[3:~2@+]` abbcddeffgch 1 …

5
タブを半分に分割する
スペース対タブをめぐって聖戦が繰り広げられてきました。(そしてもちろん、客観的に優れているスペースが勝ちました。)— アレックスA. S青梅PEO Pルはまだ拒否していることccept WHI のC HがClである電子アルリーの upreme。あなただけ受け取った incorを使用してファイルを再、CT Bの広告を、そしてINF のE WHIのriorフォームトンエスパス、そして今ではt彼続きのEファイルのNTS のR eは、汚染されたと台無しに。 あなたは、あなたにファイルを送った人に、彼らがどれだけ間違っているかを示すこともできます。 説明 タイトルが示すように、あなたの課題は、1つ以上のタブを含むファイルを取得することです。 this is an evil tab onoes そして容赦なくそれらを粉々に砕きます: this is an evil tab o n o e s Stack Exchangeソフトウェアはリテラルタブを4つのスペースに変換することに注意してください(正しいため)。この投稿内のタブは4つのスペースとして表示されます。ただし、プログラムへの入力には実際のタブが含まれます。 チャレンジ ソリューションでは、入力として単一の文字列を使用する必要があります。これには、印刷可能なASCII、改行、およびタブが含まれる場合があります。入力には常に少なくとも1つのタブがあります。 出力は同じ文字列で、次の規則が適用されている必要があります。 カーソルを座標(0,0)で右方向に開始します。座標は(列、行)、ゼロインデックス、方向は文字を印刷した後にカーソルを移動する方法です。 文字列の各文字に対して: 改行の場合は、座標(0、n)に移動します(nはこれまでの文字列内の改行の数(これを含む)で、方向を右にリセットします)。 タブの場合、2つのスペースを出力し、カーソルの方向を時計回りに90度回転し、さらに2つのスペースを出力して、タブを半分に効果的に「分割」します。以下は視覚的な例です。タブはで--->、スペースはで表されます·: foo--->bar--->baz になる foo··· · b a r …

23
行を揃える!
行を揃える! 文字と複数行の文字列が与えられたら、文字列の各行をパディングして、指定された区切り文字の間に並ぶようにします。 例 入力: , Programming, Puzzles And, Code golf 出力: Programming, Puzzles And, Code golf 入力 入力は、複数行の文字列と文字(これを揃えます)であり、これらを任意の順序/形式で使用できます。文字は1行に1回だけ表示されます。入力の各行の長さは異なる場合があります。 入力は、関数の引数またはSTDINを使用できます。 出力 出力は、中央の同じ文字列である必要があります。1つの末尾の改行が許可され、末尾の空白は許可されません。 出力には、最小限のスペースを埋め込む必要があります。入力内の先頭の空白を削除することはできません(存在する場合)。 出力は、関数戻りまたはSTDOUTからのものです。

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