zoukankan      html  css  js  c++  java
  • 【java】最长回文字符串(源码)

    最长回文字符串

    思路:中心元素判定法,算法复杂度O(n*n),从当前元素current出发,同时向左current-1与currend+1方向判断,知道两个元素不相等,不断地更新最长回文字符串。

       需要注意的是,aba与abba两种方式是不一样的。

    class Solution {
        public String longestPalindrome(String s) {
            String str="";
            int length=s.length();
            int n=length;
            if(length<=1)return s;
            str=s.substring(0,1);
            for(int i=0;i<n;i++){
                String temp1=longest(s,i,i);
                String temp2=longest(s,i,i+1);
                String temp=(temp1.length()>temp2.length())?temp1:temp2;
                str=(str.length()>temp.length())?str:temp;  
            }
            return str;
        }
        public static String longest(String s,int begin,int end){
            String str="";
            while(begin>=0&&end<s.length()&&s.charAt(begin)==s.charAt(end)){
                begin--;
                end++;
            }
            str=s.substring(begin+1,end);
            return str;
        }
    }
  • 相关阅读:
    web应用程序的状态管理
    web学习笔记二
    java Web 学习笔记一
    简述Bootstrap栅格布局方式
    CSS3笔记
    CSS 笔记
    初识HTML流水笔记
    数据库初识
    java流的操作
    Java 套接字使用
  • 原文地址:https://www.cnblogs.com/carsonwuu/p/7995663.html
Copyright © 2011-2022 走看看