博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeedCode刷题经验之寻址对称子序列:
阅读量:3965 次
发布时间:2019-05-24

本文共 1146 字,大约阅读时间需要 3 分钟。

LeedCode刷题经验之寻址对称子序列:

一般会给你一个序列,然后寻找里面最大或最小对称Plindrom(回文)。下面看一个例子:

在这里插入图片描述

class Solution {    public String longestPalindrome(String s) {        if (s == null || s.length() == 0) {            return "";        }//         保存起始位置,测试了用数组似乎能比全局变量稍快一点        int[] range = new int[2];        char[] str = s.toCharArray();        for (int i = 0; i < s.length(); i++) {//             把回文看成中间的部分全是同一字符,左右部分相对称//             找到下一个与当前字符不同的字符            i = findLongest(str, i, range);        }        return s.substring(range[0], range[1] + 1);    }        public static int findLongest(char[] str, int low, int[] range) {//         查找中间部分        int high = low;        while (high < str.length - 1 && str[high + 1] == str[low]) {            high++;        }//         定位中间部分的最后一个字符        int ans = high;//         从中间向左右扩散        while (low > 0 && high < str.length - 1 && str[low - 1] == str[high + 1]) {            low--;            high++;        }//         记录最大长度        if (high - low > range[1] - range[0]) {            range[0] = low;            range[1] = high;        }        return ans;    }}
**- 算法的核心思想是把每一个字符当成是中心,然后向两边扩展! 注明:本代码非本人所写!记本文以供学习**!

转载地址:http://pilzi.baihongyu.com/

你可能感兴趣的文章
文件上传组件比较
查看>>
关于MySQL select into 和 SQLServer select into
查看>>
搭建开发环境(初学liferay必看)
查看>>
Apache FileUpload文件上传组件API解析
查看>>
屏蔽usb的方法- -
查看>>
JSP编程进度条设计
查看>>
精心收集的面试笔试题库,网络上很难找到这么齐全的,推荐给大家
查看>>
教学视频
查看>>
JS操作Cookie详解
查看>>
Java正则表达式详解
查看>>
myeclipse 快捷键
查看>>
对div排序
查看>>
读写blob类型字段
查看>>
js类型转换
查看>>
spring实例化Bean理解
查看>>
Mac下配置JAVA_HOME
查看>>
fedora 安装mp3播放器插件
查看>>
赏心悦目的宏代码
查看>>
理解套接字recv(),send()
查看>>
发一个C++写的跨平台的BlockingQueue
查看>>