タグ付けされた質問 「array-manipulation」

配列の使用と操作を通じて特定の問題を解決するための競争。

30
逆配列合計
プログラムは、入力として配列を取る必要があります。 配列: 常に1次元になります 整数のみが含まれます 空にすることができます プログラムは配列を逆にしてから、元の要素に要素を追加する必要があります。例: 入力: [1, 2, 3] 元の: [1, 2, 3] 逆に: [3, 2, 1] [1, 2, 3] + + + [3, 2, 1] [1+3, 2+2, 3+1] 出力: [4, 4, 4] テストケース: #In #Out [8, 92], [100, 100] [1, 2, 3], [4, 4, 4] [5, 24, 85, …

30
アレイを平らにします!
この課題では、あなたの仕事は、ネストされた配列を取り込んで、一次元の平坦化された配列を返すプログラムを作成することです。たとえば、[10,20,[30,[40]],50]出力する必要があります[10,20,30,40,50]。 入力 入力はネストされた配列になります(例:)[10,20,[[[10]]]]。整数(負と正の両方)、文字列、配列のみが含まれます。入力を関数の引数、STDIN、または言語に適したものとして受け取ることができます。入力配列に空の配列がないと仮定できます。 出力 出力は、ネストされた配列と同じ順序で同じタイプの同じ要素を持つフラット化された1次元配列になります。 テストケース [10,20,30] -> [10,20,30] [[10]] -> [10] [["Hi"],[[10]]] -> ["Hi",10] [[[20],["Hi"],"Hi",20]] -> [20,"Hi","Hi",20] [[["[]"],"[]"]] -> ["[]","[]"] コメントを使用して、説明を求めてください。これはcode-golfなので、バイト単位の最短コードが勝ちです! 注: 言語にこれが組み込まれている場合は、使用しないでください。 編集 コードを実行できるWebサイトへのリンクも含めてください。

30
ヤッツィースモールストレート検出
ゲームYahtzeeでは、プレイヤーは6つのサイコロを5つ振り、ポイントを獲得するために特定の手を作成しようとします。そのようなハンドの1つは小さなストレートです。4つの連続した数字で、必ずしも順番に並んでいるとは限りません。三つの可能な小型のストレートがあり1, 2, 3, 4、2, 3, 4, 5と3, 4, 5, 6。 たとえば[3, 5, 6, 1, 4]、小さな直線が含まれてい[3, 4, 5, 6]ます。 入力 ヤッツィーハンドを表す、それぞれ1〜6の5つの整数のソートされていないリスト。 出力 手に小さなストレートが含まれる場合は真実の値、それ以外の場合は偽の値。 テストケース 真実: [[1, 2, 3, 3, 4], [1, 2, 3, 4, 5], [3, 5, 6, 1, 4], [1, 5, 3, 4, 6], [4, 5, 2, 3, 5], [1, …

18
配列の展開解除
この課題はMathematica.SEに関する質問に触発されました。 任意の構造のネストされたリスト/配列があるとします(各レベルのリストは必ずしも同じ長さではありません)。簡単にするために、ノードは負でない整数または空の配列であると仮定します。例として [[[1, 3], 2], [1, 4], 12, [[0, [], 0], [5, [7]]]] リストをフラット化してノードの操作を実行する方が便利な場合があります。たとえば、 --> [1, 3, 2, 1, 4, 12, 0, 0, 5, 7] --> [1, 1, 0, 1, 0, 0, 0, 0, 1, 1] しかし、最終的には元の構造を保存したいので、これを元に戻したい --> [[[1, 1], 0], [1, 0], 0, [[0, [], 0], [1, [1]]] あなたの仕事は、その最後のステップを実行することです。 …

9
「ソート」アルゴリズム
スターリンソートとも呼ばれる「ソートアルゴリズム」があり、リストをソートするには、リストが昇順にソートされるまでリストから要素を削除するだけです。たとえば、リスト [1, 2, 4, 5, 3, 6, 6] スターリンの並べ替えを使用して「並べ替え」が行われる場合 [1, 2, 4, 5, 6, 6] 3つは故障していたため削除されました。 当然、要素を削除してリストをソートする方法はたくさんあります。たとえば、要素が2つ未満のリストは並べ替える必要があります。そのため、盲目的に十分な要素を削除するだけで、常にリストを並べ替えることができます。これが事実であるため、スターリンの並べ替えから可能な限り長い結果のみを考慮します。 あなたの仕事は、正の整数のリストを取得し、元のリストから要素を削除することで到達できる最長のソートされた(増加する)リストの長さを出力することです。それは、最長のソートされた(おそらく不連続な)サブリストの長さを見つけることです。 ソートされたリストは、同じ要素を連続して複数回持つことができます。プログラム自体が空でない限り、空のリストをサポートする必要はありません。 得点 あなたの答えは、スターリンの可能な限り最長のソートの長さによって採点されます。プログラムは文字ではなくバイトのシーケンスとして解釈され、その順序はバイトを数字として解釈することによって生じる自然な順序になります。スコアが低いほど優れています。 これはコードゴルフではありません ここだきちんと-Oツール、あなたの答えを得点を支援します。 テストケース [1, 2, 4, 5, 3, 6, 6] -> 6 [19, 2] -> 1 [3, 3, 4, 3] -> 3 [10] -> 1 [1, 2, 4, 9] …

30
私のマトリックスアローヘッドですか?
定義 矢印行列はあるマトリックスのすべてのエントリに等しいた0主対角、一番上の行と一番左の列にものを除きます。つまり、マトリックスは次のようになります。 * * * * * * * * 0 0 0 0 * 0 * 0 0 0 * 0 0 * 0 0 * 0 0 0 * 0 * 0 0 0 0 * 各*はゼロ以外のエントリです。 仕事 非負の整数の正方行列が与えられた場合、上記の定義に従って矢じりかどうかを確認します。 配列に相当する言語がポインターや長さ(Cなど)のようなものでない限り、入力として行列のサイズを使用することはできません。常に少なくとも3 x 3になります。 各言語のバイト単位の最短コードが優先されます。 入出力 入力を受信するために、次の形式のいずれかを選択できます。 ネイティブマトリックスタイプのマトリックス(言語にマトリックスがある場合) 2D配列1(それぞれが1行に対応する1D配列の配列) 1D配列(行列は常に正方形であるため) …

8
互いに素な近傍はありません
正の整数のリストが与えられた場合、隣接する整数のペアがすべて素因数を共有するかどうかを出力します。言い換えると、リスト内の隣接する2つの整数が互いに素でない場合にのみ、真実を出力します。 さらに他の言葉で:正の整数のリスト[a 1 a 2 …a n ]が与えられたら、 gcd(a 1、a 2)> 1 && gcd(a 2、a 3)> 1 &&…&& gcd(a n-1、a n)> 1。 リストには常に少なくとも2つの要素が含まれます(n≥2)。 しかしながら… この課題は制限されたソースでもあります。答えのコードポイント(コードページがどのようなものであっても)は、プログラムがチェックする条件を満たさなければなりません。 たとえばprint 2、有効なプログラムです。Unicodeコードポイントのリストとしては[112 114 105 110 116 32 50]であり、これはこの条件を満たします。112と114は2の係数を共有します。そして114及び105の共有A因子3、等 しかし、mainすることができません(すみません!)、ユニコードのコードポイントとして有効なプログラムで発生mし、aすなわち、109と97、互いに素です。(ありがたいことに、提出は完全なプログラムである必要はありません!) プログラムにコードポイント0を含めることは許可されていません。 テストケース 真実: [6 21] -> 1 [502 230 524 618 996] -> 1 [314 112 …

22
登山グレードを並べ替える
私の最初のコードのゴルフ投稿、間違いをおologiesびします... コンテキスト ロッククライミング(特にボルダリング)では、V / Vermin(米国)の登山グレードは「VB」(最も簡単なグレード)から始まり、「V0」、「V0 +」、「V1」、「V2」、「V3」に進みます、「V4」、「V5」などから「V17」(最も厳しいグレード)まで。 仕事 入力として登山グレードのリスト/配列を取得し、最も簡単なものから最も難しいものに分類されたグレードのリスト/配列を返すか、印刷する必要があります。 入力が空の場合、空のデータ構造を返します。それ以外の場合、入力は常に有効です。 テストケース Input | Output [] | [] ['V1'] | ['V1'] ['V7', 'V12', 'V1'] | ['V1', 'V7', 'V12'] ['V13', 'V14', 'VB', 'V0'] | ['VB', 'V0', 'V13', 'V14'] ['V0+', 'V0', 'V16', 'V2', 'VB', 'V6'] | ['VB', 'V0', 'V0+', 'V2', 'V6', 'V16'] これはコードゴルフの挑戦です。

30
アレイを統合する
タスクは簡単です。intの配列を統合します。このアレイの統合は、次のもので構成されています。 0のすべてのインスタンスは、配列の最後に移動する必要があります。 ゼロ以外の整数の間に0があってはなりません。 すべての非ゼロインデックスは順序を保持する必要があります。 チャレンジ 最小バイト数で配列を統合します。 ランダムな整数を使用して、言語の最大サイズまでのランダムな長さの配列を統合しています。入力はあなたの言語にとって自然な方法かもしれません。 例 入力 0 5 8 8 3 5 1 6 8 4 0 3 7 5 6 4 4 7 5 6 7 4 4 9 1 0 5 7 9 3 0 2 2 4 3 0 4 8 7 3 1 …

29
プレフィックスコードですか?
情報理論では、「プレフィックスコード」とは、どのキーも別のキーのプレフィックスではない辞書です。言い換えれば、これは、文字列が他の文字列で始まらないことを意味します。 たとえば、{"9", "55"}はプレフィックスコードですが、そうで{"5", "9", "55"}はありません。 これの最大の利点は、エンコードされたテキストを区切り文字なしで書き留めることができ、一意に解読できることです。これは、常に最適なプレフィックスコードを生成するHuffmanコーディングなどの圧縮アルゴリズムに現れます。 タスクは簡単です。文字列のリストが与えられたら、それが有効なプレフィックスコードかどうかを判断します。 あなたの入力: 妥当な形式の文字列のリストになります。 印刷可能なASCII文字列のみが含まれます。 空の文字列は含まれません。 出力は、真/偽の値になります。有効なプレフィックスコードの場合はTruthy、そうでない場合はfalseyです。 真のテストケースを次に示します。 ["Hello", "World"] ["Code", "Golf", "Is", "Cool"] ["1", "2", "3", "4", "5"] ["This", "test", "case", "is", "true"] ["111", "010", "000", "1101", "1010", "1000", "0111", "0010", "1011", "0110", "11001", "00110", "10011", "11000", "00111", "10010"] いくつかの誤ったテストケースを次に示します。 ["4", "42"] ["1", "2", …

20
優れたパスタイム
時々、私が本当に退屈しているとき、非負の整数の配列の合計を取るのが好きです。2のべき乗である長さの配列の合計のみを取ります。残念ながら、私はしばしば間違いを犯します。幸いなことに、私は自分の仕事を次のように追跡しながら追跡しています。 残りの番号が1つになるまで、隣接する番号のペアを追加します。例えば: 6 + 18 + 9 + 6 + 6 + 3 + 8 + 10 = 24 + 15 + 9 + 18 = 39 + 27 = 66 仕事は、私がどこかで間違いを犯したかどうかを判断することです。入力を関数に渡すか、標準入力から読み取ることができます。出力は印刷するか返すことができます。 入力:配列/リスト/など。非負の整数、および言語で必要な場合はその配列の長さも含まれます。その配列は、左から右、次に上から下に読み取られるすべての数字になります。例えば、上記の配列はなる: [[6, 18, 9, 6, 6, 3, 8, 10], [24, 15, 9, 18], [39, 27], [66]] または [6, …

16
一番高いのは誰ですか?
正確なサイズを共有する2人の子供を持たないN人の子供が、何らかの順序で並んでいます。それぞれは、身長をその隣人としか比較できません。先生が「あなたが一番背が高い場合は手を挙げてください」と叫ぶとき、彼らが隣人の両方より背が高い場合、彼らはそうします。1人だけが手を上げると、彼が勝ちます。2人以上が手を挙げた場合、それらはすべて列から削除され(残りの子の順序を保持します)、プロセスを繰り返します。 明確な整数の配列(厳密に正であると仮定できます)を受け取り、このゲームの勝者を出力するプログラムを作成します。これはコードゴルフなので、最短のコードが優先されます。 例(中間ステージを表示): 5 3 9 8 7→3 8 7→8 1 2 9 4→9 9 3 8 7 4 12 5→3 7 4 5 →3 4 →4 現在のリーダー: ゼリー:17バイト[by Dennis♦] MATL:20バイト[Luis Mendo作] APL:28バイト[voidhawk] k:40バイト[by Paul Kerrigan] Pythonの戦いも続いています。さらに多くのゴルフ言語が登場するのを待っています。 現在、Dennis♦の回答を受け入れました。新しい勝者がいる場合は、選択を更新します。

30
本当ですか?ゼリーに聞いて!
バックグラウンド Octave(および、拡張によりMATL)の非常に便利な真偽/偽の行列の解釈に触発され、JellyはȦ(Octaveスタイルのすべて)アトムを取得しました。 Ȧ入力として配列を受け取り、配列が空ではなく、ツリー構造のどこにも数字0(整数、浮動小数点、または複素数)を含まない場合は1を返します。それ以外の場合は0を返します。 たとえば、配列[[]]は空ではなくゼロを含まないため真理ですが、[[0]]は最も内側のレベルに0を含むため偽です。 仕事 選択したプログラミング言語で、完全なプログラムまたは関数を作成します。これは、入力として空の、場合によってはギザギザの整数配列を取り、Ȧがそれぞれ1または0を返すかどうかを示す真実または偽の値を出力または返します。 あなたの提出物は、以下の規則に従わなければなりません。 真偽値と偽の値は、すべての入力で一貫している必要があります。つまり、Ȧが1を返すすべての配列は同じ真偽値にマップし、Ȧが0を返すすべての配列は同じ偽値にマップする必要があります。 完全なプログラムは入力として配列の文字列表現しか受け取れないため、これは許可されています。ただし、返されるreprまたは同様の言語のカノカル表現を使用する必要があります。 特に、配列の最初の要素の前にスペースがあるとは想定できません。 ご使用の言語がジャグ配列をネイティブに表現できない場合(のみ)、既存のプログラミング言語の標準的な構文を使用して、入力の文字列表現を使用できます。 言語にギザギザの配列(リストやタプルなど)を表す方法がいくつかある場合は、そのうちの1つをサポートするだけで済みます。 あなたの言語自体がこのチャレンジへの有効な提出物であるビルトインを持っている場合、あなたはあなたの答えでそれを使うことはできません。他のすべてのビルトインは許可されます。 配列操作と文字列操作の両方を使用して回答を投稿することをお勧めします。一方が他方よりも著しく短い場合でも。 すべての標準コードゴルフ規則が適用されます。 バイト単位の最短コードが勝つように! 真実のテストケース [1] [10] [[]] [[[[1]]]] [[], [1], [1, 2]] [[1], [1, [2]], [1, [2, [3]]]] [[8], [8, [9]], [8, [9, [10]]]] 偽のテストケース [] [0] [0, -1] [-1, 0] [[[[0]]]] [[0], [1, 2], [3, 4, …

14
配列エスケープ-そこから出て
ある日、目を覚まして、自分がアレイに巻き込まれているのを見つけます。そこから出て、一度に1つのインデックスを取得しようとしますが、他のルールがあるようです。 配列は自然数で完全に埋められます。 インデックスに自分自身を見つけた場合 nにいる場合は、index array[n]に移動しますが、次の場合を除きます。 あなたがn素数であるインデックスに自分自身を見つけた場合、あなたはarray[n]戻ってステップを取る 例:4この配列のindex から開始します(開始インデックスは0): array = [1,4,5,6,8,10,14,15,2,2,4,5,7]; -----------------^ you are here 現在のフィールドの値は8なので8、最初のステップとしてインデックスに移動します。着陸するフィールドには値が含まれています2。次に2、2番目のステップとしてインデックスに移動します。以下のよう2素数である、あなたはあなたの第三段階である、バックの5つのステップを取ります。インデックスがないため-3、合計3ステップで配列を正常にエスケープしました。 あなたの仕事は: パラメータとして配列と開始インデックスを受け取り、配列をエスケープするためのステップ数を出力するプログラムまたは関数を作成します。配列をエスケープできない場合(たとえば[2,0,2]、start-index 2=>を使用すると、常にインデックスから移動します)2からに0)、偽の値を出力します。1ベースのインデックス付けまたはゼロベースのインデックス付けを使用できますが、使用するものを指定してください。 テストケース 入力: [2,5,6,8,1,2,3], 3 出力: 1 入力: [2, 0, 2], 2 出力: false 入力: [14,1,2,5,1,3,51,5,12,3,4,41,15,4,12,243,51,2,14,51,12,11], 5 ; 出力: 6 最短の答えが勝ちです。

9
対角線を回転させる
バックグラウンド ほとんどの合理的なプログラミング言語では、2D配列の行または列を簡単に回転できます。この課題では、代わりに対角線を回転させることがタスクです。2D配列の対角線は、北東方向に取られた1Dスライスであることに注意してください。 入力 妥当な形式の1桁の数字の空でない長方形の2D配列。配列は正方形ではないことに注意してください。 出力 同じ配列ですが、各対角線が1ステップ右に回転しています。 例 3x4入力配列を考えます 0 1 2 3 4 5 6 7 8 9 0 1 この配列の対角線は 0 4 1 8 5 2 9 6 3 0 7 1 回転したバージョンは 0 1 4 2 8 5 3 9 6 7 0 1 したがって、正しい出力は 0 4 5 …

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