代码着色

public int longestPalindrome(String s) {
    //预处理
    char[] chars = s.toCharArray();
    StringJoiner joiner = new StringJoiner("#");
    joiner.add("");
    for (char c : chars) {
        joiner.add(String.valueOf(c));
    }
    joiner.add("");
    String exString = joiner.toString();
    int size = exString.length();
    int[] RL = new int[size];
    int MaxRight = 0, pos = 0, MaxLen = 0;
    for (int i = 0; i < size; i++) {
        if (i < MaxRight) {
            RL[i] = Math.min(RL[2 * pos - i], MaxRight - i);
        } else {
            RL[i] = 1;
        }
        //尝试扩展
        while (i - RL[i] >= 0 && i + RL[i] < size && exString.charAt(i - RL[i]) == exString.charAt(i + RL[i])) {
            RL[i]++;
        }
        //更新MaxRight,pos
        if (RL[i] + i - 1 > MaxRight) {
            MaxRight = RL[i] + i - 1;
            pos = i;
        }
        //更新最大长度
        MaxLen = Math.max(MaxLen, RL[i]);
    }
    return MaxLen - 1;
}
public int dpLongestPalindrome(String s) {
    int n = s.length();
    boolean[][] pal = new boolean[n][n];
    //pal[i][j] 表示s[i...j]是否是回文串
    int maxLen = 0;
    for (int i = 0; i < n; i++) {  // i作为终点
        int j = i;    //j作为起点
        while (j >= 0) {
            if (s.charAt(j) == s.charAt(i) && (i - j < 2 || pal[j + 1][i - 1])) {
                pal[j][i] = true;
                maxLen = Math.max(maxLen, i - j + 1);
            }
            j--;
        }
    }
    return maxLen;
}
时间: 2025-01-07 15:57:53

代码着色的相关文章

Android Studio代码着色插件

Android Studio代码着色插件 前言:半个多月没写博客了,放了个假期,这人才缓过来神,懒的啥都不想干,可算是明白一句话的意思了:玩物丧志啊!好在公司项目赶的紧,不想干活都不行,强行撸上正轨-- 正因为夜以继日的Coding赶模块,最近感觉眼睛干涩,眼圈红肿,看着那些颜色一层不变的abc,心里莫名的冒火,故有了本篇博文.还是建议大家敲一会abc后,起来走动走动,眼睛看看远处,让眼圈周围血液循环循环.不要像本屌,昨天回家路上买瓶水,付账时老板娘女儿问,你是不是搞IT的 ?!  ---- 此

Eclipse主题与代码着色定制

老大一直说Eclipse E4的主题太臃肿了,给人感觉不好.另外,Eclipse的编辑器的代码着色等颜色主题也需要定制,比如定制成UE或者VS.SourceInsight的形式. 发现两个比较不错的插件,一个是用来修改Eclipse的主题的(见https://github.com/jeeeyul/eclipse-themes),另一个是用来修改Eclipse的代码着色相关的配置(见http://eclipsecolorthemes.org/). 第一个插件主要通过Eclipse E4的CSSEn

Intellij IDEA 设置代码着色

从visual studio到Eclipse再到Intllij IDEA,其实每个编译器都有自己的风格,但是就美观上来说,个人觉得还是visual studio的代码着色比较美观,exlipse次之,idea真的没有美观而言,虽然它的功能很强大,于是自己更改了idea的代码着色,下面几张图示,希望你们喜欢:

Windows Live Writer加载代码着色插件步骤

博客园内置支持SyntaxHighlighter代码着色,代码着色语法:<pre class='brush:编程语言'>代码</pre>. 需要注意的是:如何你使用SyntaxHighlighter代码着色,需要将默认编辑器改为TinyMCE.如果使用CuteEditor,CuteEditor会自动去除代码中的空格,造成代码格式破坏.还有需要注意的是,加载完插件后,在Live Writer中是看不到代码着色效果的,发布后就可以看到了. 如果您使用Windows Live Write

发布Live Writer代码着色插件CNBlogs.CodeHighlighter

在解决了使用Windows Live Writer发博所遇到的"建分类.加标签.写摘要"与"设置EntryName"的四个问题之后,我们趁热打铁,解决了第五个问题 -- 代码着色的问题. 代码着色以Live Writer插件的方式实现,采用了"云中着色"技术(呵呵,跟随当前云计算的潮流.实际只是将代码提交至服务器端处理). 该代码着色的特点是所见即所得,着色效果与博客后台编辑器中的一样. 插件安装方法 1. 下载插件 下载地址:http://fi

解决代码着色组件SyntaxHighlighter行号显示问题

SyntaxHighlighter是根据代码中的换行符分配行号的.但是,如果一行代码或者注释比较长,在页面显示时需要分成多行显示,这时行号就对不上了.如下图: 通过下面的css强制不换行,可以避开这个问题. .syntaxhighlighter .line { white-space: pre !important; } 但这样会出现横向滚动条,而不想出现横向滚动条,css要改为这样: .syntaxhighlighter .line { white-space: pre-wrap !impor

Windows Live Writer推荐SyntaxHighlighter代码着色插件

博客园内置支持SyntaxHighlighter代码着色,代码着色语法:<pre class='brush:编程语言'>代码</pre>. 需要注意的是:如何你使用SyntaxHighlighter代码着色,需要将默认编辑器改为TinyMCE.如果使用CuteEditor,CuteEditor会自动去除代码中的空格,造成代码格式破坏. 如果您使用Windows Live Writer写博客(配置步骤),通过Windows Live Writer代码着色插件,可以方便进行Syntax

Windows Live Writer 代码着色插件推荐

1.WindowsLiveWriter.CNBlogs.CodeHighlighter 1.1.下载地址 文件名:WindowsLiveWriter.CNBlogs.CodeHighlighter.zip 下载地址:http://files.cnblogs.com/files/cmt/WindowsLiveWriter.CNBlogs.CodeHighlighter.zip 1.2.安装方法 1.2.1.将 "WindowsLiveWriter.CNBlogs.CodeHighlighter.z

Windows Live Writer使用SyntaxHighlighter代码着色插件

官方网址:http://sourcecodeplugin.codeplex.com/ 本地下载:SourceCodePlugin_version_1.1.zip 安装方法: 将WindowsLiveWriter.SourceCode.dll复制到Windows Live Writer plugin文件夹:* 32-bit systems: C:\Program Files\Windows Live\Writer\Plugins* 64-bit systems: C:\Program Files

代码着色测试

function saveStorage(id) { var target = document.getElementById(id); var str = target.value; sessionStorage.setItem('message', str); }