JAV打印字符串中最大的回文子串
2010-10-28 13:30
399 查看
import java.util.*; /** * 打印字符串中最大的回文子串 * 时间复杂度O(n power 3),空间复杂度O(1) * @author HUOYIN * @version 1.0 2010-10-28 上午11:19:14 * */ public class EchoString { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.print("Please input a string: "); String str = scan.nextLine(); int start = 0, length = 1; int p = 0, q = 0; for (int i = 0; i < str.length() - length; i++) { p = i; for (int j = str.length() - 1; j > i; j--) { q = j; while (str.charAt(p) == str.charAt(q) && p < q) { p++; q--; } if (p > i && (p == q || q == p - 1) && (j-i+1)>length) { start = i; length = j - i + 1; } else { p=i; } } } System.out.println("the max-length palindrome: " + str.substring(start, start+length)); } } import java.util.*; /** * 打印字符串中最大的回文子串 * 时间复杂度O(n power 2),空间复杂度O(1) * @author HUOYIN * @version 1.0 2010-10-28 上午11:19:14 * */ public class MaxPalindrome { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.print("Please input a string: "); String str = scan.nextLine(); int start = 0, maxlength = 1, j=0; for (int i = 0; i < str.length()-1-maxlength/2; i++) { //even palindrome determination for(j = 0; (i-j)>=0 && (i+j+1)<str.length(); j++) { if(str.charAt(i-j)!=str.charAt(i+j+1)) { break; } } if(j*2>maxlength) { maxlength=j*2; start=i-j+1; } //odd palindrome determination for(j = 1; (i-j)>=0 && (i+j)<str.length(); j++) { if(str.charAt(i-j)!=str.charAt(i+j)) { break; } } j--; if((j*2+1)>maxlength) { maxlength=j*2+1; start=i-j; } } System.out.printf("(start)=%d, (maxlength)=%d, (the max-length palindrome string)=/"%s/"/n", start, maxlength, str.substring(start, start+maxlength)); } }
相关文章推荐
- 求字符串的最大回文子串
- 字符串的最大回文子串判断
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- Longest Palindromic Substring(字符串的最大回文子串)
- 华为机试——求一个字符串中的最大回文子串
- 给定一个字符串,求它的最长回文子串的长度,并打印出最长回文子串
- 笔试——字符串算法题——寻找最大回文子串
- 找工作知识储备(2)---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 最长公共子串、最长公共子序列、最长回文子串、模式匹配、最大子序列--字符串问题整理
- java获取两个字符串中最大相同子串。第一个动作:将短的那个串进行长度一次递减的子串打印
- 求一个字符串中的最大回文子串
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 求取一个字符串的最大回文子串
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 (转)
- 给定一个字符串s,找出s中最长的回文子串,你可以假设s的最大长度是1000。
- Leetcode005--字符串中最大的回文子串
- 面试题:最长回文子串(即求对称字符串的最大长度 )