タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

30
ワトソン・クリック回文
問題 任意のDNAストリングがWatson-Crick回文であるかどうかを判別できる関数を作成します。この関数はDNAストリングを受け取り、ストリングがWatson-Crick回文である場合はtrue値を、そうでない場合はfalse値を出力します。(TrueおよびFalseは、それぞれ1および0として表すこともできます。) DNAストリングは、好みに応じてすべて大文字でもすべて小文字でもかまいません。 また、DNAストリングは空になりません。 説明 DNAストリングは、その逆の補数がそれ自体に等しい場合、ワトソンクリック回文です。 DNA文字列が与えられた場合、最初にそれを反転し、次にDNA塩基(A↔TおよびC↔G)に従って各文字を補完します。元の文字列が逆相補文字列と等しい場合、それはワトソンクリック回文です。 詳細については、この質問を参照してください。DNA文字列の中で最も長い部分文字列を見つける必要がある場合、その部分文字列はワトソンクリック回文であるという別の課題です。 ゴール これはコードゴルフであり、最短のコードが勝ちます。 テストケース 形式は<input> = <output>です。 ATCGCGAT = true AGT = false GTGACGTCAC = true GCAGTGA = false GCGC = true AACTGCGTTTAC = false ACTG = false

30
配列の深さを決定する
月曜日の夕方の簡単なチャレンジ(まあ、または世界の他の半分の火曜日の朝...) 入力として、正の整数のネストされた潜在的に不規則な配列が与えられます: [1, [[2, 3, [[4], 5], 6, [7, 8]], 9, [10, [[[11]]]], 12, 13], 14] あなたの仕事は、その深さを決定することです。これは、リスト内の整数の最大の入れ子の深さです。この場合、の深さは11で6、これが最大です。 空の配列はないと想定できます。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 入力は、実際の情報が前処理されない限り、非長方形配列(深さの異なるネストされた配列)をサポートする任意の便利なリストまたは文字列形式で取得できます。 配列の形状に関連する組み込み関数(ネストされた配列の次元を取得するこの課題を解決する組み込み関数を含む)を使用しないでください。これの唯一の例外は、配列の長さを取得することです。 標準のコードゴルフ規則が適用されます。 テストケース [1] -> 1 [1, 2, 3] -> 1 [[1, 2, 3]] -> 2 [3, [3, [3], 3], 3] -> 3 [[[[1], 2], [3, [4]]]] -> 4 [1, …

6
今年は元気ですか?
前書き サンタには名前が多すぎて処理できないため、あなたの助けが必要です!彼はあなたがプログラムまたは出力機能、書き込む必要があるnice、naughty、very naughtyまたはをvery very naughty。誰かがどれだけいいか、またはいたずらかを判断するために、サンタはアルゴリズムを開発しました ニース(division、math): まず、すべての文字を加算することにより、名前から数字を取得します(スペースは無視されます)。例えば: Doorknob = D = 4 o = 15 o = 15 r = 18 k = 11 n = 14 o = 15 b = 2 4 + 15 + 15 + 18 + 11 + 14 + 15 + 2 = 94 …

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 …

12
fib-abcを学習しましたか?
数字は好きではありませんが、フィボナッチ数列は好きです。何か解決できると確信しています。 STDINから1つの整数nを読み取り、ベース26のn番目のフィボナッチ数(のabcdefghijklmnopqrstuvwxyz代わりに0123456789)をSTDOUTに出力してください。 最初のフィボナッチ数は0です。2 番目のフィボナッチ数は1です。n番目のフィボナッチ数は、n -2 番目とn -1 番目のフィボナッチ数の合計です。 最初の32個のfib-abc番号: fib(0) = a fib(1) = b fib(2) = b fib(3) = c fib(4) = d fib(5) = f fib(6) = i fib(7) = n fib(8) = v fib(9) = bi fib(10) = cd fib(11) = dl fib(12) = fo fib(13) = …

17
一番眠いのは誰ですか?
文字の文字列を取り込みプログラムまたは機能書くのと'は常に文字への代替、文字だが。文字列の奇数の長さは1より大きく、常にのいずれかで開始および終了します。-=o.-=o.-=o 基本的に、入力はさまざまな眠気状態で目を共有する絵文字の顔のラインのようになります。 o.=.=.-.-.o.o あなたの目標は、最も眠い顔または最も目覚めている顔を印刷するか返すことです(選択するのはあなた次第です)。誰が最も眠い/最も起きているかについて複数の選択肢がある場合、それらのいずれかが出力されます。 9つの異なる顔と5つのレベルの眠気があります。 -.- is 100% sleepy -.= is 75% sleepy -.o is 50% sleepy =.- is 75% sleepy =.= is 50% sleepy =.o is 25% sleepy o.- is 50% sleepy o.= is 25% sleepy o.o is 0% sleepy それがはっきりしない場合には、眠気の割合は、割り当てることによって計算される1まで-、完全に眠りのため0.5に=眠って半分のために、と0にo目を覚ましのために。次に、2つの目の値を2で割った合計がパーセンテージです。 バイト単位の最短コードが優先されます。 テストケース 最も眠い -.- GIVES -.- =.- GIVES …
31 code-golf  string 

10
「タップ」をプレイする
今日、2015年11月11日は米国退役軍人の日です。「タップ」は、米軍葬儀で行われるラッパ呼び出しです。 (vtmillerからSoundCloudの「タップ」) これは単純なメロディで、長さはわずか24音で、使用する音は4種類のみです。楽譜は次のとおりです。 (ソース) チャレンジ 「タップ」を再生するか、「タップ」のオーディオファイルを一般的なオーディオファイル形式(MP3、WAV、MIDIなど)で出力するプログラムまたは関数を作成します。それは、あなたの言語で利用可能なあらゆる種類の楽器またはビープ音を使用して、どのキーでも演奏できます。たとえば、ラッパの代わりにピアノのように聞こえるかもしれません。(ただし、使用する楽器の種類は1つだけです。) 24音すべてを正確なピッチ、デュレーション、間隔で演奏する必要があります。「タップ」に精通している人は、コードを実行して、再生中の曲を簡単に認識できるはずです。 メロディの長さ(最初の音の開始から最後の音の終わりまで)は30〜70秒でなければなりません。オプションで、サウンドファイルの開始または終了、あるいはその両方に最大5秒の無音パディングを設定できるため、80秒のファイルが許可されます。 もちろん、単にどこかでオンラインで曲をダウンロードしたり、たまたまサンプルとして持っているオーディオライブラリから抽出したりすることはできません。ただし、個々のノートを再生/作成し、オーディオファイルを作成できるオーディオライブラリを使用できます。 得点 これはcode-golfであるため、バイト単位の最短回答が優先されます。ただし、この特定の課題については、特に音質を犠牲にして、バイトカウントに集中しないことをお勧めします。提出物をゴルフしますが、楽器の選択や音の出力方法で創造性を発揮できます。この課題は退屈な退役軍人を称えることであって、「タップ」のほとんど認識できないバージョンを叫ぶことではありません。 空行にリンクを貼り付けるだけで、SoundCloudオーディオファイルを投稿に直接埋め込むことができます。SoundCloudアカウントをお持ちの場合、これは出力を共有するのに最適な方法です。

9
ねじれた「Hello world!」を構築する
あなたの仕事は、印刷物というプログラムを書き、非常に簡単であるHello, world!ツイストがプリントというプログラムを作成すること、Twister!。 弦のねじれ方 ツイストアルゴリズムは非常に単純です。各列はそのインデックスだけ下にシフトされます(col 0は0に移動し、col 1は1に移動します...)。列シフトは上に折り返されます。それはちょっとこのように見えます: a ba cba ---- cba cb c 行の下のすべてが上に折り返されます。実際の例: Original: \\\\\\\\\\\\ ............ ............ ............ Twisted: \...\...\... .\...\...\.. ..\...\...\. ...\...\...\ (お気に入りの言語のその他の例とツイスターは こちらです) 得点 プログラムは、パディングされた長方形でなければなりません。これはコードゴルフなので、バイト数が最も少なくなります! ルール 最初のプログラムは印刷する必要があります Hello, world!。末尾の改行は1つだけ許可されます。 最初と2番目のプログラムは同じ言語である必要があります。 2番目のプログラムは印刷する必要がありますTwister!。末尾の改行は1つだけ許可されます。 プログラムには少なくとも2行2列が必要です。

12
私はその数を見たことがありません!
非空白文字の文字列を通過するプログラムを書く(あなたは彼らが数字であることを仮定してもよい0のは9、彼らが処理される方法で、何もこれに依存しない)と、以下の規則に従ってスペースを追加します。 現在のトークンを空の文字列とし、以前に発行されたトークンを空のセットにします。 文字列の文字を反復処理します。各文字について、最初に文字を現在のトークンに追加します。次に、現在のトークンが以前に発行されたトークンのセットにまだない場合、現在のトークンをそのセットに追加し、新しい現在のトークンを空の文字列にします。 文字列の最後に達したときに現在のトークンが空の場合、スペース文字で区切られた、以前に発行されたトークンを発行順に出力します。それ以外の場合は、元の文字列をそのまま出力します。 入力 STDINへの入力は、数字のシーケンスである必要があります。 出力 プログラムは、手順3で指定された結果を印刷する必要があります。 サンプル サンプル入力 2015 10101010 4815162342 101010101010 3455121372425 123456789101112131415 314159265358979323846264338327950288419716939937 サンプル出力 2 0 1 5 10101010 4 8 1 5 16 2 3 42 1 0 10 101 01 010 3 4 5 51 2 1 37 24 25 1 2 3 4 …

30
猫がないた"
cat 「ニャー」になる 私たちは皆、catプログラムの概念に精通しています。ユーザーが何かを入力すると、ユーザーにエコーバックされます。簡単です。しかし、cat私がこれまでに見たすべてのプログラムは1つの事実を見逃していcatます。あなたの仕事は入力がない限りすべてSTDINにコピーするプログラムを書くことです。その場合、あなたのプログラムは出力するべきです。STDOUT catcat goes "Meow" 得点 これはcode-golfであるため、スコアはバイトカウントであり、いくつかの修飾子があります。 プログラムがcat(例cow: cow goes "Moo")以外の追加の動物で機能する場合、追加の動物ごとに:-10 プログラムで「cat」という単語を使用しない場合:-15 プログラムfoxが「キツネの言うこと」で応答する場合:-25 一緒に行く動物と音: cow goes moo duck goes quack sheep goes baa bees go buzz frogs go croak このリストの他のものはすべて許可されます。 ルール 標準的な抜け穴が適用されます 何も書いてはいけません STDERR 二重引用符の代わりに、単一引用符を使用するか、引用符を使用しないでください。 リーダーボード これは、通常のリーダーボードと言語ごとの勝者の概要の両方を生成するスタックスニペットです。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 ## Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: ## Ruby, <s>104</s> <s>101</s> 96 …
31 code-golf 

6
ミラーレベルを出力するプログラムを作成する
95個の印刷可能なASCII文字があります。 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ でConsolasフォント(スタック交換コードブロックのデフォルト)、文字の一部は、対称の垂直軸の周りに鏡を持っています。 これらの文字のペアは、相互のミラーです。 () [] {} <> /\ これらのキャラクターは自分自身のミラーです:(! "'*+-.8:=AHIMOTUVWXY^_ovwx|スペースは1つです。) これらにはミラーがありません。 #$%&,012345679;?@BCDEFGJKLNPQRSZ`abcdefghijklmnpqrstuyz~ (i、l、0、#、およびおそらく他の文字は、一部のフォントでは、独自のミラーであるが、我々はConsolas形状に固執するでしょう。) 文字列が39個のミラー文字のみで作られている場合、文字列は中央の垂直対称線を持つように配置されているため、それ自体の鏡であると言われます。それ](A--A)[はそれ自体の鏡ですが、そうでは](A--A(]ありません。 それ自体のミラーである1行の偶数長のプログラムを作成します。左半分のN個のコピーが追加され、右半分のN個のコピーが追加された場合、N + 1が出力されます。Nは負でない整数です。 たとえば、プログラムが](A--A)[(左半分:](A-、右半分:)の場合、次のよう-A)[になります。 実行](A--A)[すると出力されます1。(N = 0) 実行](A-](A--A)[-A)[すると出力されます2。(N = 1) 実行](A-](A-](A--A)[-A)[-A)[すると出力されます3。(N = 2) 実行](A-](A-](A-](A--A)[-A)[-A)[-A)[すると出力されます4。(N = 3) 。。。 実行](A-](A-](A-](A-](A-](A-](A-](A-](A-](A--A)[-A)[-A)[-A)[-A)[-A)[-A)[-A)[-A)[-A)[すると出力されます10。(N = 9) 等 ルール stdoutまたは言語の最も近い代替への出力。オプションの末尾の改行がある場合があります。何も入力しないでください。 このプロセスは、十分なメモリと計算能力があれば、理論的には2 15 -1以上のNで機能するはずです。 REPLコマンドだけでなく、完全なプログラムが必要です。 バイト単位の最短の初期プログラム(N = 0の場合)が優先されます。

8
ASCIIポリゴンの面積
ASCIIアートポリゴンを表す文字列を入力および出力として受け取り、ポリゴンの領域を返すプログラムまたは関数を作成する必要があります。 入力は、文字で構成され、単純な多角形_ / \ L V spaceをnewline定義する文字列です(つまり、余分なセグメント、セルフタッチ、セルフ交差はありません)。 単一の文字セルの面積は 2 _サイズにセルを分割0し、2 \サイズにセルを分割1し、1 /サイズにセルを分割1し、1 Lサイズにセルを分割0し、2 Vサイズに細胞を分割1し、1(の双方はV、それらがリストに一緒に処理されるので、常にポリゴンの同じ側にあります。) すべての文字は、期待する文字セルの2つのコーナーを接続します(例:の場合は左上と右上V)。 面積が7の例(1+2+12行目と1+1+13 行目): _ / \ V\/ 入力 入力は長方形を形成します。つまり、改行の間には同じ数の文字があります。 多角形の任意の辺に余分な空白を含めることができます。 末尾の改行はオプションです。 出力 単一の正の整数、ポリゴンの面積。 例 出力は、入力の最後の行の後です。 _ V 1 /L \/ 3 /VV\ L / L/ 14 ____/\ \ / /\/ / \____/ 32 /V\ / \__ …

13
花のグラフ小花
このカモミールの花を見てください: きれいですね。さて、これが実際には一輪の花ではないと言ったらどうでしょうか? 多くの花(ヒマワリ、カモミール、ヒナギクなどを含む)は、実際には花の頭にある非常に小さな花(ヒマワリの黒い点)で構成されています。これらのミニチュアの花は小花と呼ばれ、非常に特別な方法で配置されます。 基本的に、花の頭上のn番目の小花の位置は次のとおりです(極座標)。 ここで、c = 1(137.508度=黄金角に注意してください。この正確な精度を使用する必要はありません。) これにより、小花がフェルマーのらせんと呼ばれるらせん状に形成されます。小花の位置もフィボナッチ数に関係していますが、それはまた別の話です。 だから、ここに挑戦です。整数nを入力として、最初のn個の小花の位置を計算してプロットします。これはグラフィカル出力であるため、実際には、何らかのウィンドウにポイントを表示するか、または一般的な画像形式のデータとしてSTDOUTまたはファイルに出力する必要があります。それ以外は、この課題はかなり簡単です。それはcode-golfなので、最短のコードが勝ちます。GL HF! 以下は、出力がどのように見えるかのサンプル画像です。

4
ASCII Doodling:ボックス内のレーザー
時々、だらだらしているときは、長方形を描き、角の1つから対角線で始め、長方形の辺に当たるたびにそれを「反映」することで線をトレースします。長方形の別の角に当たるまでこれを続けます(そして、長方形のアスペクト比が無理ではないことを願っています;))。これは、箱に照らされたレーザーの経路を追跡するようなものです。その結果をASCIIアートで作成することになります。 例として、幅5と高さのボックスを考えます3。常に左上隅から開始します。#マークボックスの境界。幅と高さは内側の寸法を参照していることに注意してください。 ####### ####### ####### ####### ####### ####### ####### #\ # #\ # #\ \# #\ /\# #\ /\# #\/ /\# #\/\/\# # \ # # \ /# # \ /# # \/ /# # \/ /# #/\/ /# #/\/\/# # \ # # \/ # # \/ # # …

2
チックタックトーラスの最適ゲーム
この課題はTic Tac Toeのゲームについてですが、トーラスでプレイします。 遊び方 必要なゲームボードを作成するには、通常のTic Tac Toeゲームボードから始めます。最初に、左端と右端を結合して、シリンダーに折ります。次に、上端と下端を結合してトーラスに折ります。これは、いくつかの動きをプレイしたこのようなゲームボードの簡単な視覚化です(シックペイントスキル!)。 トーラス上のTic Tac Toeのルールは、通常のTic Tac Toeと同じです。各プレイヤーは、XとOを交互に配置します。行、列、または対角線に3つの同じシンボルがある最初のものが勝ちです。 トーラスの視覚化は非常に難しいため、ボードを紙に投影し直します。これで、通常のTic Tac Toeとしてゲームをプレイできます。唯一の違いは、壊れた対角線で3つの同じシンボルで勝つことができるということです。たとえば、プレーヤー1(X)は次のボードに勝ちます。これは、トーラスのビューを少し変更することで簡単に確認できます。 興味があれば、トーラスゲームズのトーラスでTic Tac Toeをプレイできます。Windows、Mac、Androidのバージョンがあります。 最適なゲーム この課題では、最適なゲームに興味がありました。最適なゲームとは、両方のプレイヤーが最適な戦略をプレイするゲームです。通常のTic Tac Toeボードでは、最適なゲームは常に引き分けになります。トーラスボードでは、常に最初のプレイヤーが勝ちます。実際、トーラスボードでのゲームは引き分けに終わることはありません(プレイヤーが最適でない場合も)。 最適な戦略は本当に簡単です。 シンボルを配置して勝つことができるなら、それをしてください。 それ以外の場合、対戦相手が1つの行/列/対角線に2つのシンボルを持っている場合は、ブロックしようとします。それ以外の場合は、必要なことを行います。 それ以外の場合は、必要なことを行います。 最適なゲームはすべて7つの動きで構成されており、これらの動きは次のように説明できます。 プレーヤー1は、ボード上の任意の場所にXを配置します(9つの選択肢) プレイヤー2はボード上の任意の場所にOを配置します(8つの選択肢) プレーヤー1は、ボード上の任意の場所にXを配置します(7つの選択肢) プレイヤー2の移動は強制される可能性があり(1選択肢)、そうでない場合はOを任意の場所に配置します(6選択肢) プレイヤー1の移動が強制されます(1選択肢) プレイヤー2はフォークに引っ掛かる(プレイヤー1は2つの異なる方法で勝つことができる)ので、プレイヤー2はプレイヤー1を1つの方法でブロックする必要がある(2つの選択肢) プレイヤー1が最後の動きを決めて勝ちます(1選択肢) 予想されるボードには、9 * 8 * 1 * 6 * 1 * 2 * 1 + 9 * …

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