Динамическое программирование [Самая длинная палиндромная подстрока]JAVA

Программисты JAVA общаются здесь
Anonymous
Динамическое программирование [Самая длинная палиндромная подстрока]

Сообщение Anonymous »

Я решил эту проблему с помощью рекурсии и мемоизации, но не смог найти итеративного решения. Может ли кто-нибудь помочь мне преобразовать приведенное ниже рекурсивное решение в итеративное решение с пошаговым объяснением??? Заранее спасибо.
class Solution {
Boolean[][] memo;
public String longestPalindrome(String s) {
int n = s.length();
memo = new Boolean[n][n];

return helper(s);
}

public boolean isPal(String s,int st,int en) {
if (st >= en) {
return true;
}

if (memo[st][en] != null) {
return memo[st][en];
}

if (s.charAt(st) == s.charAt(en) && isPal(s,st + 1,en - 1)) {
memo[st][en] = true;
return true;
}

return false;
}

public String helper(String s) {

int st = -1;
int maxLen = 0;
for (int i = 0;i

Подробнее здесь: https://stackoverflow.com/questions/779 ... -substring

Вернуться в «JAVA»