输入一个字符串,输出该字符串中对称的子字符串的最大长度。
来源:互联网 发布:淘宝套餐链接转换 编辑:程序博客网 时间:2024/04/29 22:00
/* * Q75题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。 * 比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。 */ public static void main(String[] args) { //String strs="google"; String strs="mnbvvvvbabbakkeaad"; int len=longestSymmtricalLength(strs); System.out.println(len); } /* * consider this string: * ..aAa..(A represents a string of any length) * if we already know 'A' is a palindrome, * we just need to test if the char before 'A' and that after 'A' are the same * if so,A=aAa now. * Do it again and again to find the result. * 考虑这个字符串: aAa .. ..(代表任意长度的字符串) 如果我们已经知道“A”是一个回文, 我们只需要测试,如果之前的“A”和之后的"A"是否相等 */ public static int longestSymmtricalLength(String str){ if(str==null||str.length()==0){ return -1; } int symLen=1; //总长度 char[] letter=str.toCharArray(); int strLen=str.length(); int curIndex=1; //索引位置 while(curIndex>0&&curIndex<strLen-1){ //odd symmetrical length,the 'pivot' char is letter[curIndex] <span style="white-space:pre"></span>//奇对称的长度,letter[curindex] int i=curIndex-1; int j=curIndex+1; while(i>=0&&j<=(strLen-1)&&letter[i]==letter[j]){ i--; j++; } int newLen=j-i-1; if(newLen>symLen){ symLen=newLen; } //even symmetrical length,the 'pivot' chars are letter[curIndex] and letter[curIndex+1] //即使是对称的长度,letter[curIndex] 和letter[curIndex+1] //如果相等就再判断它的前后两项是否相等 i=curIndex; j=curIndex+1; while(i>=0&&j<=(strLen-1)&&letter[i]==letter[j]){ i--; j++; } newLen=j-i-1; if(newLen>symLen){ symLen=newLen; } curIndex++; } return symLen; } }
0 0
- 输入一个字符串,输出该字符串中对称的子字符串的最大长度。
- 输入一个字符串,输出该字符串中对称的子字符串的最大长度。
- 输入一个字符串,输出该字符串中最大对称子串的长度
- 输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。
- 给你一个字符串,找出该字符串中对称的子字符串的最大长度。
- 找出该字符串中对称的子字符串的最大长度
- 找出字符串中对称的子字符串的最大长度
- 对称子字符串的最大长度
- 对称子字符串的最大长度
- 对称子字符串的最大长度
- 对称子字符串的最大长度
- 对称子字符串的最大长度
- 求对称子字符串的最大长度
- 对称子字符串的最大长度
- 对称子字符串的最大长度
- 对称子字符串的最大长度
- 对称子字符串的最大长度
- 对称子字符串的最大长度
- poj 1321 棋盘问题
- 让你快速认识flume及安装和使用flume1.5传输数据(日志)到hadoop2.2
- 恒天云技术分享系列7 – 分布式块存储架构
- 使用CustomDraw来自绘CListCtrl控件
- [linux]ubuntu14.04搭建dhcp server
- 输入一个字符串,输出该字符串中对称的子字符串的最大长度。
- java 泛型 注意点
- 工程文件的配置以及lib文件的引用
- MFC对话框设置背景色及透明度
- poj1258 Agri-Net 最小生成树,kruskal算法
- java中的equals和==区别
- Android OpenGL ES(五):GLSurfaceView
- Java调用XML的方法:DocumentBuilderFactory
- 初次尝试ActiveMQ,实现简单的消息生产和消息消费