挑戦
あなたが与えられている:
- 正の整数の空ではない、ソートされていないリストh(haystack)
- 正の整数n(針)
あなたの仕事は、バイナリ表現がnのバイナリ表現を含むhの順列のすべての一意の 10進連結のリストを返すことです。
例
h = [1、2、3]
n = 65一致する連結は1つしかないため、予想される出力は
[321]
です。h = [1、2、3]
n = 7今回は、バイナリパターン111を含む3つの連結があります。予想される出力は
[123, 231, 312]
です。h = [12、3]
n = 72つの順列のみが使用可能で、両方が一致しています。予想される出力は
[123, 312]
です。h = [1、2、2]
n = 15唯一のマッチング連結である122(1111010含むバイナリで1111予想出力されるように、)
[122]
。2つの順列は実際には122になりますが、出力することはできません[122, 122]
。
明確化と規則
- 針は、整数(
65
)、10進数値を表す文字列()、"65"
または2進値を表す文字列("1000001"
)として使用できます。 - haystackは、ネイティブ配列/オブジェクト/整数のセット(
[11,12,13]
)、ネイティブ配列/オブジェクト/ 10進値を表す文字列のセット(["11","12","13"]
)、または10進値の区切り文字列("11 12 13"
または"11,12,13"
)として取得できます。数字の配列(など[[1,1],[1,2],[1,3]]
)を使用してバリアントを選択することもできます。 - 出力は、上記のhaystackの形式のいずれかに従う必要がありますが、必ずしも同じ形式である必要はありません。
- 最高の10進連結が、言語で表現可能な最高の符号なし整数より大きいhaystacksを処理することは想定されていません。
- それとは別に、十分な時間とメモリが与えられていると仮定すると、コードは理論的にはすべての入力をサポートする必要があります。
- これは
スパルタです!code-golfなので、バイト単位の最短回答が勝ちます!
テストケース
Haystack | Needle | Output
---------------------+----------+-----------------------------------
[ 1, 2, 3 ] | 65 | [ 321 ]
[ 1, 2, 3 ] | 7 | [ 123, 231, 312 ]
[ 12, 3 ] | 7 | [ 123, 312 ]
[ 1, 2, 2 ] | 15 | [ 122 ]
[ 1, 2 ] | 7 | []
[ 12, 34, 56 ] | 21 | [ 125634, 341256, 345612, 563412 ]
[ 1, 2, 3, 4, 5 ] | 511 | [ 53241 ]
[ 1, 3, 5, 7, 9 ] | 593 | [ 37519, 51793, 75913, 75931 ]
[ 11, 12, 13, 14 ] | 12141311 | [ 12141311 ]
[ 1, 2, 1, 2, 1, 2 ] | 1015 | [ 221112 ]
["12","3"]
、できません["1","23"]
。
set([(1, 2, 2)])
です。それが有効であるか、私は取り除く必要がありますかset
?