После этого необходимо было бы сделать своего рода рекурсивный, исчерпывающий поиск. Псевдо код очень примерно:
function FindWords(solutionList, wordsSoFar, sortedQuery)
// base case
if sortedQuery is empty
solutionList.Add(wordsSoFar)
return
// recursive case
// InitialStrings("abc") is {"a","ab","abc"}
foreach initialStr in InitalStrings(sortedQuery)
// Remaining letters after initialStr
sortedQueryRec := sortedQuery.Substring(initialStr.Length)
words := words matching initialStr in the dictionary
// Note that sometimes words list will be empty
foreach word in words
// Append should return a new list, not change wordSoFar
wordsSoFarRec := Append(wordSoFar, word)
FindWords(solutionList, wordSoFarRec, sortedQueryRec)
В конце, необходимо выполнить итерации через solutionList и распечатать слова в каждом подсписке с пробелами между ними. Вы, возможно, должны были бы распечатать все упорядочивания для этих случаев (например, "Я - Sam" и "Sam, который я", оба решения).
, Конечно, я не протестировал это, и это - метод решения "в лоб".
У меня возникла та же проблема с планировщиком задач Windows сервера Windows 2008. Действие возвращает код, отличный от нуля, но планировщик считает задачу выполненной :
Task Scheduler successfully completed task "\SET Tasks\Scheduled task [Backup SET Server]" , instance "{...}" , action "C:\Windows\SYSTEM32\cmd.exe" with return code 1.
Я нашел в Интернете только один ответ:
Планировщик задач Windows не выполняет проверьте код выхода или любой другой ценности, когда ваша задача завершится. Вы должен обрабатывать любую обработку ошибок в вашем собственном сценарии или программе.
... в этом документе: www.onlinetoolworks.com/docs/winTaskSched.doc
Итак, теперь я думаю, что единственным способом решения этой проблемы может быть использование запуск задачи по событию . Я веду расследование.
С уважением,
Оливье.