2017-12-19 25 views
-2

2Nのシーケンスがあります。 Nの部分列を選択することが可能かどうかを、選択された順序と選択されていないものが同じになるように決定する必要があります。 たとえば、1 2 1 2 3 3は可能ですが、1 2 3 3 1 2では不可能です。選択したものと選択していないものを選択するサブシーケンスは同じ

これを解決する方法はありますか?

+1

*「どのようなアイデアを解決するのか?」*あなた自身でこれまで解決しようとしてきたことは何ですか? Btw、どの言語? – Frakcool

+0

私達にあなたのコードを教えてください。どこに正確にこだわったのですか? – MrSmith42

答えて

0

あなたがこれを解決するために何のコードや言語を提供しないように、私ができる最善のは、あなたの擬似コードを与えることである。

アイデアはすでに数を追加したかどうかを満たされる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と表示されるはずです。

関連する問題