QBPAL - Đếm chuỗi đối xứng
Tác giả: khuc_tuan
Ngôn ngữ: Python
s = raw_input()
n = len(s)
F = [[-1 for i in range(n)] for j in range(n)]
def calc(a,b):
if a>b:
return 1
if a==b:
return 2
if F[a][b]!=-1:
return F[a][b]
res = 0
res = calc(a+1,b) + calc(a,b-1) - calc(a+1,b-1)
if s[a]==s[b]:
res += calc(a+1,b-1)
F[a][b] = res
return res
print calc(0,n-1) - 1