当前位置: 首页 > news >正文

最长回文串

最长回文串问题
要求子串连续 与 不连续

import java.util.*;
public class ks_huiwenchuan {
	
	public static int max(int a, int b, int c) {
		int m = a;
		if(m<b)
			m=b;
		if(m<c)
			m=c;
		return m;
	}
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		String s = scan.nextLine();
		int size=s.length();
		int [] [] dp = new int[size][size];
		for(int i=0; i<size; i++) {dp[i][i]=1;}
		
		for(int len=1; len<size; len++) {
			for(int i=0; i+len<size; i++) {
				if(s.charAt(i)==s.charAt(i+len))
					dp[i][i+len] = dp[i+1][i+len-1]+2;
				// 如果子串不要求连续  这里没有检测子串是否是回文数
				dp[i][i+len] = max(dp[i][i+len], dp[i+1][i+len], dp[i][i+len-1]);
			}
		}
		System.out.println(dp[0][size-1]);
		
		int max = 1;
		int [][] dp2 = new int[size][size];
		for(int i=0; i<size; i++) {dp2[i][i]=1;}
		for(int len=1; len<size; len++) {
			for(int i=0; i+len<size; i++) {
				if(s.charAt(i)==s.charAt(i+len))
				// 检查去掉两端后 是否为回文字符串
					if(dp2[i+1][i+len-1]!=0)
					dp2[i][i+len] = dp2[i+1][i+len-1]+2;
				if(max<dp[i][i+len])
					max=dp[i][i+len];
			}
		}
		System.out.println(max);
	}
}

相关文章:

  • 分享:Sersync试用
  • pstreegdb
  • 一点正则表达式的学习碎片
  • 链表分割
  • void*
  • python requests.session 与 requests
  • 爬虫_urlencode问题
  • 如何实现MySQL的自动备份
  • 魔术索引
  • PIC数据采集系统---接口功能测试
  • 字符串排列
  • 数组中的逆序对
  • Windows 8 应用商店应用开发 之 氛围光传感器
  • 子串判断
  • arm汇编程序中的[|]
  • 分享一款快速APP功能测试工具
  • [数据结构]链表的实现在PHP中
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 《Java编程思想》读书笔记-对象导论
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Cumulo 的 ClojureScript 模块已经成型
  • C学习-枚举(九)
  • JavaScript 基本功--面试宝典
  • JS专题之继承
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • PhantomJS 安装
  • ReactNative开发常用的三方模块
  • spring-boot List转Page
  • Vue 2.3、2.4 知识点小结
  • vue 配置sass、scss全局变量
  • 阿里云应用高可用服务公测发布
  • 创建一种深思熟虑的文化
  • 关于Java中分层中遇到的一些问题
  • 关于字符编码你应该知道的事情
  • 深度学习中的信息论知识详解
  • 我与Jetbrains的这些年
  • 项目管理碎碎念系列之一:干系人管理
  • 用jQuery怎么做到前后端分离
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #Lua:Lua调用C++生成的DLL库
  • (2015)JS ES6 必知的十个 特性
  • (42)STM32——LCD显示屏实验笔记
  • (7)STL算法之交换赋值
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (分享)自己整理的一些简单awk实用语句
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (转)memcache、redis缓存
  • (转)编辑寄语:因为爱心,所以美丽
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 8.0 发布到 IIS
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET CORE Aws S3 使用
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET中GET与SET的用法