经典算法(一)之回文
来源:互联网 发布:chunglim淘宝 编辑:程序博客网 时间:2024/06/06 23:55
回文,把相同的词汇或句子 ,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文。
例如:
ABCDDCBA就是一个回文,ABA也是。
往往求一段字符串中的最长回文,是最常见的题型。
package com.zl.spider.test;import java.util.Scanner;/** * 求字符串最长回文算法 * * @author zl * @time 2017.05.03 */public class PalindromicSubstring { private static String answer; private static int lo, maxlen; public static void main(String[] args) { System.out.println("请输入字符串:"); Scanner sc = new Scanner(System.in); String str = sc.next(); answer = longestPalindromicSubstring(str); System.out.println("最长回文为:" + answer); } private static String longestPalindromicSubstring(String str) { int len = str.length(); if (len < 2) { return str; } for (int i = 0; i < len - 1; i++) { extendPalindrome(str, i, i); extendPalindrome(str, i, i + 1); } return str.substring(lo, lo + maxlen); } private static void extendPalindrome(String str, int j, int k) { while (j >= 0 && k < str.length() && str.charAt(j) == str.charAt(k)) { j--; k++; } if (maxlen < k - j - 1) { lo = j + 1; maxlen = k - j - 1; } }}
运行结果:
每天一个算法,提高自己
0 0
- 经典算法(一)之回文
- 经典算法(二)之回文数
- 经典排序算法之实现(一)
- JAVA之经典算法一
- JAVA算法(一) -- 经典回文数(取出任意范围的回文数)
- 经典算法找最长回文
- Java算法之经典问题篇(一)
- C#编程之经典算法——排序(一)
- C#编程之经典算法——查找(一)
- 转:图像匹配之:经典sift算法(一)
- 100经典算法之(一)---Fibonacci Numbers
- 100经典算法之(一)---Fibonacci Numbers
- 算法入门经典 7.1.4 (双基回文数)
- Java经典算法(一)
- Java经典算法(一)
- java经典算法(一)
- Java经典算法(一)
- 算法之路二:刘汝佳算法竞赛入门经典 3.7回文词 UVa401
- SpringBoot非官方教程 | 第十五篇:Springboot整合RabbitMQ
- 浏览器输入url到页面加载过程
- java调用Hibernate3
- SpringBoot非官方教程 | 第十六篇:用restTemplate消费服务
- glBufferSubData和glBufferData的关系,glBufferSubData()填充数据后无效果
- 经典算法(一)之回文
- SpringBoot非官方教程 | 第十六篇:用restTemplate消费服务
- Hive中case when的两种语法
- 二分贪心总结
- Eclipse 复制当前行快捷键失效
- C、C++基础知识之 面向对象的三个基本特征
- SpringBoot非官方教程 | 第十七篇:上传文件
- maven 项目的pom.xml第一行报错
- CF