对称子字符串的最大长度
2015-06-08 21:18
197 查看
对称子字符串的最大长度
题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。
比如输入字符串“ google”,由于该字符串里最长的对称子字符串是“ goog”,因此输出 4。
分析:可能很多人都写过判断一个字符串是不是对称的函数,这个题目可以看成是该函数的
加强版。
题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。
比如输入字符串“ google”,由于该字符串里最长的对称子字符串是“ goog”,因此输出 4。
分析:可能很多人都写过判断一个字符串是不是对称的函数,这个题目可以看成是该函数的
加强版。
/** * 对称子字符串的最大长度 题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。 比如输入字符串“ google”,由于该字符串里最长的对称子字符串是“ goog”,因此输出 4。 分析:可能很多人都写过判断一个字符串是不是对称的函数,这个题目可以看成是该函数的 加强版。 * @author wycheng * */ public class SymmLongest { public static int subSolution(String str){ if(null == str){ return 0; } if(str.length() == 1){ return 1; } int count = 0; int p =0; int q=str.length()-1; while(p<q){ if(str.charAt(p)==str.charAt(q)){ count+=2; p++; q--; }else{ q--; count=0; } } if(p==q){ ++count; }else{ } return count; } public static int solution(String str){ int maxLen = 0; int tmpLen = 0; for(int i=0;i<str.length();i++){ for(int j=str.length();j>=0;j--){ if(i<j){ String strTmp = str.substring(i, j); tmpLen = subSolution(strTmp); } if(tmpLen > maxLen){ maxLen=tmpLen; } if(j-i<maxLen){ break; } } } return maxLen; } public static void main(String[] args) { System.out.println(solution("google")); } }
相关文章推荐
- 本博客不再更新,移步blog.newboo.org
- Jmeter -准备篇
- JAVA在linux上运行带包的class文件
- 看懂信息检索和网络数据挖掘领域论文的必备知识总结
- 数据表设计一些问题_I
- 游戏策划概述(二)——设计
- n个布尔变量,打印所有可能的真值组合
- Android-Button
- 第二十三篇 Java如何编译 计算器 的源代码共享
- 排序
- Rectangle Area
- Kafka设计解析(三)- Kafka High Availability (下)
- EHcache配置说明
- leetcode 98 【查询是否是平衡树】
- 分数类的实现
- 2015年6月8日_宋词学习
- org.hibernate.LazyInitializationException:could not initialize proxy
- java ftp
- Android屏幕适配全攻略(最权威的官方适配指导)
- C++难点—类 (01)