寻找最大的回文字符串
来源:互联网 发布:java入门的书 编辑:程序博客网 时间:2024/06/11 01:21
寻找最大的回文字符串,例如字符串adcdedco,那么最大的回文子串就是cdedc。
其实现代码如下:
package com.threeTop.www;/** * 判断一个字符串是否为回文串 * @author wjgs * */public class StringUtils {/** * 判断回文字符串 * @param str * @return */public static boolean isPalindrome(String str){if(str==null||str.length()==0){throw new RuntimeException("字符串为空");}int mid=(str.length()-1)/2;for(int i=0;i<=mid;i++){if(str.charAt(i)!=str.charAt(str.length()-1-i)){return false;}}return true;}/** * 计算回文字符的最大子串的长度 * @param str * @return */public static int longestPalindrome(String str){if(str==null||str.length()==0){throw new RuntimeException("字符串为空");}int max=0,current=0,length=str.length();//循环每个字符为回文的中点for(int i=0;i<length;++i){for(int j=0;i-j>=0&&i+j<length;j++){ if(str.charAt(i-j)!=str.charAt(i+j)){break;}current=j*2+1;}if(current>max){max=current;}current=0;for(int j=0;(i-j>=0)&&(i+j+1<length);j++){if(str.charAt(i-j)!=str.charAt(i+j+1)){break;}current=j*2+2;}if(current>max){max=current;}}return max;}public static void main(String []args){System.out.println(StringUtils.isPalindrome("abcba"));System.out.println(StringUtils.isPalindrome("abccba"));System.out.println(StringUtils.isPalindrome("abdca"));//判断最长的回文串 System.out.println("最长的回文串长度:"+StringUtils.longestPalindrome("abcdefgfedcgcda"));}}
0 0
- 寻找最大的回文字符串
- 寻找最大回文字符串(python)
- 寻找最大回文
- 字符串的最大回文长度
- 回文字符串的最大长度
- 寻找输入的回文字符串并输出!!
- 寻找回文字符串
- 寻找最长回文字符串
- 欧拉项目004:寻找最大的回文数
- 寻找一个字符串的所有回文子字符串
- 关于c++最大回文的字符串长度
- 字符串的最大回文子串判断
- 字符串中最大的回文长度
- 求字符串中最大的回文长度
- 求字符串的最大回文子串
- PHP输出字符串的最大回文
- 查找字符串的最大回文长度
- 【算法】寻找字符串中最长的回文序列
- 模态、下拉菜单 、切换标签页 区别 (Bootstrap)
- Windows PE变形练手3-把通用模板机器码直接覆盖目标PE
- Java抽象类与接口的区别
- HackerRank Medium(30) Maximal AND Subsequences 贪心+计数
- git常用的命令
- 寻找最大的回文字符串
- Java并发(三)ConcurrentHashMap锁分段机制
- Linux安装JDK+Tomcat+mySql
- The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rw-rw-rw-
- 访问者模式
- fd与FILE*的关系
- Android buttion 的四种事件
- smtp协议简介
- Diameter of Binary Tree