-2
2N
のシーケンスがあります。 N
の部分列を選択することが可能かどうかを、選択された順序と選択されていないものが同じになるように決定する必要があります。 たとえば、1 2 1 2 3 3
は可能ですが、1 2 3 3 1 2
では不可能です。選択したものと選択していないものを選択するサブシーケンスは同じ
これを解決する方法はありますか?
2N
のシーケンスがあります。 N
の部分列を選択することが可能かどうかを、選択された順序と選択されていないものが同じになるように決定する必要があります。 たとえば、1 2 1 2 3 3
は可能ですが、1 2 3 3 1 2
では不可能です。選択したものと選択していないものを選択するサブシーケンスは同じ
これを解決する方法はありますか?
あなたがこれを解決するために何のコードや言語を提供しないように、私ができる最善のは、あなたの擬似コードを与えることである。
アイデアはすでに数を追加したかどうかを満たされる2つのスタックを持っていることです下に掲載メソッド内、どちらか一方で:
if (stack1 has N) {
add N to stack2
} else {
add N to stack1
}
次に、各スタックから各番号を取得し、
function/method isItPossible(arrayWithSequence) {
//Here add the numbers in the stacks
while (both stacks are not empty) {
if (lastNumberInStack1 is different from lastNumberInStack2) {
return false
}
}
return true
}
それからちょうどを呼び出します10
print(isItPossible(yourSequenceHere));
可能であれば、
true
または
false
と表示されるはずです。
*「どのようなアイデアを解決するのか?」*あなた自身でこれまで解決しようとしてきたことは何ですか? Btw、どの言語? – Frakcool
私達にあなたのコードを教えてください。どこに正確にこだわったのですか? – MrSmith42