Я решил эту проблему с помощью рекурсии и мемоизации, но не смог найти итеративного решения. Может ли кто-нибудь помочь мне преобразовать приведенное ниже рекурсивное решение в итеративное решение с пошаговым объяснением??? Заранее спасибо.
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