Professional Documents
Culture Documents
DPGA
DPGA
n = len(s)
# DP table
NPS = [[{'num': 0, 'ispal': False} for _ in range(n)] for _ in range(n)]
# Base cases
for i in range(n):
NPS[i][i]['num'] = 1
NPS[i][i]['ispal'] = True
if s[i] == s[j]:
if l == 2 or NPS[i + 1][j - 1]['ispal']:
NPS[i][j]['num'] = NPS[i + 1][j - 1]['num'] + 1
NPS[i][j]['ispal'] = True
if not NPS[i][j]['ispal']:
NPS[i][j]['num'] = NPS[i][j - 1]['num'] + NPS[i + 1][j]['num'] - NPS[i + 1][j - 1]['num']
s = 'madam'
numberDec = count_decomps(s)
print(numberDec)