def main(strs, max_len=1): n = len(strs) array = [[0] * n for _ in range(n)] # 二维矩阵 max_str = strs[0] for i in range(n): array[i][i] = 1 # 初始值 for j in range(0, i): if strs[i] == strs[j]: if i - 1 == j: array[i][j] = 1 else: array[i][j] = array[i - 1][j + 1] # 状态转移方程 if array[i][j] == 1 and i - j + 1 > max_len: max_len = i - j + 1 max_str = strs[j:i + 1] print(array, max_len, max_str) if __name__ == '__main__': strs = 'cqagaqbhjkll' main(strs)
寻找字符串中最长回文子串-动态规划
于 2023-10-27 18:18:21 首次发布