Вопрос в том, чтобы сгенерировать все двоичные строки из заданного шаблона 1, 0 и?.Следующий код - это то, что я написал, и он дает бесконечный вывод.Например, если ввод 1? 1?, выходные данные должны быть 1010, 1011, 1110, 1111
Я делаю это итеративным способом, используя Очередь.
static void fill(StringBuilder s)
{
Queue<StringBuilder> q = new LinkedList<StringBuilder> () ;
q.add(s);
while(!q.isEmpty())
{
s = q.peek();
int pos = s.indexOf("?");
if(pos>=0)
{
StringBuilder s1 = new StringBuilder(s);
s1.setCharAt(pos,'0');
q.add(s1);
StringBuilder s2 = new StringBuilder(s);
s1.setCharAt(pos,'1');
q.add(s2);
}
else
System.out.println(s);
q.poll();
}
}