チャレンジ:
空でない整数のリストのリストを指定すると、次の形式のタプルのリストを返します。最初のリストの各要素で始まり最初のリストのタプルの後に後続のすべてのリストの最初の要素が続くため、i番目のタプルはになります[ith element of first list, first element of second list, ... , first element of last list]。例えば:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] => [[1, 4, 7], [2, 4, 7], [3, 4, 7], ...
次に、フォームのタプルを実行する[last element of first list, ith element of second list, first element of third list, ..., first element of last list]ので、この例では次のようになります。
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] => ..., [3, 4, 7], [3, 5, 7], [3, 6, 7], ...
に到達するまで、残りの各リストを続行します[last element of first list, ..., last element of second to last list, ith element of last list]。
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] => ..., [3, 6, 7], [3, 6, 8], [3, 6, 9]]
完全な出力は次のとおりです。
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] =>
[[1, 4, 7], [2, 4, 7], [3, 4, 7], [3, 5, 7], [3, 6, 7], [3, 6, 8], [3, 6, 9]]
適切な対策のための定型文:
- 入力を文字列のリストまたは正の整数のリストにする場合は、問題ありません。問題は、リストの操作についてではなく、リストの内容についてです。
- 入力と出力は、受け入れ可能な任意の形式にすることができます。
- 完全なプログラムまたは機能のいずれかが許可されます。
- デフォルトでは、標準の抜け穴は許可されていません。
- この質問はコードゴルフなので、バイト数が最も少ないものが優先されます。
例:
[] => [[]] (or an error, thanks to ngn for correcting the output in this case)
[[1]] => [[1]]
[[1, 2], [3, 4], [5]] => [[1, 3, 5], [2, 3, 5], [2, 4, 5]]
[[1], [2], [5, 6], [3], [4]] => [[1, 2, 5, 3, 4], [1, 2, 6, 3, 4]]
[[1, 2, 3], [4, 5]] => [[1, 4], [2, 4], [3, 4], [3, 5]]
[[1, 2, 3], []] => unspecified behavior (can be an error)
[[3, 13, 6], [9, 2, 4], [5, 10, 8], [12, 1, 11], [7, 14]] =>
[[3, 9, 5, 12, 7], [13, 9, 5, 12, 7], [6, 9, 5, 12, 7], [6, 2, 5, 12, 7],
[6, 4, 5, 12, 7], [6, 4, 10, 12, 7], [6, 4, 8, 12, 7], [6, 4, 8, 1, 7],
[6, 4, 8, 11, 7], [6, 4, 8, 11, 14]]
[[16, 8, 4, 14, 6, 7, 10, 15], [11, 1, 12, 2, 19, 18, 9, 3], [13, 5, 17]] =>
[[16, 11, 13], [8, 11, 13], [4, 11, 13], [14, 11, 13], [6, 11, 13],
[7, 11, 13], [10, 11, 13], [15, 11, 13], [15, 1, 13], [15, 12, 13], [15, 2, 13],
[15, 19, 13], [15, 18, 13], [15, 9, 13], [15, 3, 13], [15, 3, 5], [15, 3, 17]]
誰かがより良いタイトルを持っているなら、私に知らせてください。
[[]]。(ゼロ)サブリストのそれぞれから1つのエントリを持つ空のタプルが1つあるためです。おそらくこれを正しく出力するようにプログラムに要求するのは面倒すぎるので、それは必要ではないと言います。
[]、厳密に、非空のリストの空のリストを話すが、出力は間曖昧です[]し、[[]]それは許さ入力だ場合。(「最初のリストの各要素で始まる最初のリストのタプル...」-最初のリストがないため、これで完了です-> [])
[]あると確信しています[[]]。たとえば、出力タプルの数はsum(inner list lengths) - length of outer list + 1、空の場合はで与えられます1。これはの長さです[[]]が、の長さではありません[]。しかし、これはちょっとした問題です...
[] => []本当にそうあるべきだと思っています[] => [[]]が、理由を説明する言葉が見つかりません。