对称子字符串的最大长度

来源:互联网 发布:免费人事工资软件 编辑:程序博客网 时间:2024/05/20 13:18
/** * 题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。 * 比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”, * 因此输出4。 *  * @author Administrator * */public class Main {public static void main(String[] args) {System.out.println(fun("google"));}/** * 判断字符串是否为对称的,首位同时进行比较,时间复杂度为o(n) * 是从两端向中间靠齐进行的比较; * @param str * @return */public static boolean IsSymmetrical(String str){boolean flag=true;char[] c=str.toCharArray();for(int i=0,j=c.length-1;i<=j;i++,j--){if(c[i]!=c[j]){flag=false;break;}}return flag;}     /**      * 求字符串中最大长度的对称子串,时间复杂度为o(n^3)      * @param str      * @return      */public static int fun(String str){int max=0;char[] c=str.toCharArray();boolean flag=true;for(int i=0;i<c.length-1&&flag;i++){for(int j=c.length;j>i;j--){String subString=str.substring(i, j);if(IsSymmetrical(subString)){max=subString.length();flag=false;break;}}}return max;}/** *怎么利用o(n^2的解法来解决问题)  */

0 0
原创粉丝点击