多语言展示
当前在线:245今日阅读:167今日分享:16

一起Leetcode--如何寻找字符串中的最长回文子串

题目:给定一个字符串,寻找这个串中的最长回文子串。本篇经验将分享两个算法,一个是暴力寻找算法,时间复杂度为 O(n³), 一个是动态规划算法,时间复杂度为 O(n²)。
工具/原料
1

Eclipse

2

JDK1.8

方法/步骤
1

暴力寻找算法:定义一个判断回文串的方法 图示,定义一个方法,用于判断参数字符串是否是回文串。

2

暴力寻找算法:遍历所有子串,逐个判断子串是否是回文串图示,通过双层嵌套循环,遍历参数字符串的每一个子串,并调用上一步骤定义的方法判断是否是回文串。

3

动态规划算法图示,动态规划算法的核心思想是,将原始字符串反转,通过双层嵌套循环获取相同子串,并判断这个子串是否是回文串。

4

性能对比测试:构建测试数据图示,构建50个长度为1000的字符串

6

性能对比测试:10次测试结果汇总图示,通过多次运行取平均耗时,暴力寻找算法的耗时大概是动态规划算法的30倍左右。

注意事项

对于一个算法题目,不仅要考虑算法的实现难易,也需要考虑算法的执行效率,好的算法可以让执行效率提升几十倍甚至上百倍

推荐信息