zoukankan      html  css  js  c++  java
  • 手撕代码之回文

    美菜网笔试撕代码之回文

    手撕代码中回文出现的频率挺高的:

    编程实现查找字符串中的最长回文。回文代表左右对称的字符串,如aba,abba,要求查找字符串中长度最长的回文,

    如果有多个长度不同的最长回文,任意返回其一。

    输入:cxabaa   返回 aba

    输入:xabacaba 返回 abacaba

    输入:dsabbad 返回 abba

    java上代码:

    public class Palindrome {
        public static void main(String[] args) {
        String sstr="cxabaa";
        String strLongest =longestPalin(sstr);
        System.out.println(strLongest);
        }
        public static String Palindrome(String s,int left,int right) {
            //left与right相当于指针移动
            int n = s.length();
            int l = left;
            int r = right;
            while(l>=0 && r<=n-1 && s.charAt(l)==s.charAt(r)) {
                l--;
                r++;
            }
            String sm=s.substring(l+1, r);//substring截取范围starindex-endindex-1
            return sm;
        }
        public static String longestPalin(String s) {
            int n=s.length();
            if(n<=1) {
                return s;
            }
            String  longest = "";
            for (int i = 0; i < s.length()-1; i++) {
                String str = Palindrome(s,i,i);
                if (str.length()>longest.length()) {
                    longest = str;
                }
                String str1 = Palindrome(s, i, i+1);
                if (str1.length()>longest.length()) {
                    longest = str1;
                }        
            }
            return longest;
        }
    
    }

    结果:

    留白:是否还有其他时间复杂度更小的算法

  • 相关阅读:
    私有字段private也可以外部访问
    PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)
    数据库删除重复数据
    常见主流数据库对比介绍
    php方法重载
    php 析构函数,构造函数
    php中常量 const属性,静态属性,静态的函数方法
    面向对象(1)
    HDU 5047 Sawtooth 高精度
    HDU 5239 Doom 线段树
  • 原文地址:https://www.cnblogs.com/xiaonantianmen/p/9803025.html
Copyright © 2011-2022 走看看