Это в основном дубликат:
Как разбить строку на слова. Пример: "stringintowords" -> "Строка в слова"?
neverthelees, у меня есть такая функция: public int Word(x) {code}
, где для строки x она возвращает целое число (+ ve или -ve), и это целое число будет указывать на то, насколько хорошо или плохо разбиение для конкретного слова. Я должен вернуть комбинацию, которая дает максимальное число.
Что я думал для этого, так это создать таблицу (i, j), где i и j имеют длину слова, и заполнить таблицу крачкой, как:
for i = 1 to n
for j=i to n do
word(subset of x i to j)
и, тем не менее, заполните таблицу, как я смогу когда-нибудь найти оптимальное решение (рекурсивным способом?)
любая помощь приветствуется.
РЕДАКТИРОВАТЬ: оптимальный путь - это путь с наибольшей суммой функции слова (x), т. Е. Если у нас есть
путь (1,3) = 10, (3,6) = 20, (6,7) = 1 и
путь (1,1) = 0, (2,5) = 12, (5,7) = - 1
тогда сумма 1-го пути> 2-го
РЕДАКТИРОВАТЬ2: Я хотел бы, чтобы все знали, что я ответил на этот вопрос после долгих часов работы, несмотря на то, что я не нашел решения, я думаю, что получить его самостоятельно всегда лучше:
ура!)