回文判断
来源:互联网 发布:计算机应用与软件期刊 编辑:程序博客网 时间:2024/06/11 23:27
算法1:暴力解法,枚举所有子串,对每个子串判断是否为回文,复杂度为O(n^3)
import java.util.Scanner;/** * 最长回文子串,暴力解决,找到字符串中的每一个子串,记录下来其中最长的 * @author buder_cp * */public class 最长回文子串暴力 {public static boolean isPanlidrome(String s, int start, int end) {for (int i = start, j = end; i < j; i++, j--) {if (s.charAt(i) != s.charAt(j)) {return false;}}return true;}public static String longestPalidrome(String s) {int n = s.length();int max = 0;int from = 0;int to = 1;for (int i = 0; i < n; i++) {for (int j = i; j < n; j++) {if (isPanlidrome(s, i, j)) {if (j - i + 1 > max) {max = j - i + 1;from = i;to = j;}}}}return s.substring(from, to + 1);}public static void main(String[] args){Scanner sc = new Scanner(System.in);System.out.println(longestPalidrome(sc.nextLine()));}}
public class 最长回文子串中心扩展 {public static void main(String[] args){String s = "12321";int len = s.length();int max = 1;int start = 0;for(int i = 1; i < len; i++){int low = i-1;//偶数情况int high = i;while(low >= 0 && high < len && s.charAt(low)==s.charAt(high)){low--;high++;}if(high-low-1 > max){max = high-low-1;start = low+1;}low = i-1;//奇数情况high = i+1;while(low >= 0 && high < len && s.charAt(low)==s.charAt(high)){low--;high++;}if(high-low-1 > max){max = high-low-1;start = low+1;}}System.out.println(max);}}
阅读全文
0 0
- 判断回文
- 回文判断
- 判断回文
- 判断回文
- 回文判断
- 回文判断
- 判断回文!
- 判断回文
- 回文判断
- 判断回文
- 回文判断
- 回文判断
- 判断回文
- 回文判断
- 回文判断
- 判断回文
- 回文判断
- 判断回文
- 链接:Wi-Fi P2P
- OpenCV On Android环境配置最新&最全指南(Android Studio篇)
- LeetCode 368. Largest Divisible Subset
- 设计优先考虑的规则
- 数据洞察——第八期魅族技术开放日现场纪实
- 回文判断
- 用MyEclipse10开发基于JAX-WS的Web Service实例
- 线性排序算法(计数排序和桶排序) C++
- android动态权限总结
- Nova服务重启之后过几分钟Down
- 简要介绍路由表以及路由表的生成
- 原生JS封装ajax方法
- Unreal Engin_简单的地形草地制作笔记 _001<草地的制作>
- Runloop笔记(一)