Java实现 LeetCode 214 最短回文串

Java实现 LeetCode 214 最短回文串214 最短回文串给定一个字符串 s 你可以通过在字符串前面添加字符将其转换为回文串 找到并返回可以用这种方式转换的最短回文串 示例 1 输入 aacecaaa 输出 aaacecaaa 示例 2 输入 abcd 输出 dcbabcd classSolutio publicstatic Stri

214. 最短回文串

给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。

示例 1:

class Solution { public static String shortestPalindrome(String s) { StringBuilder r = new StringBuilder(s).reverse(); String str = s + "#" + r; int[] next = next(str); //如果是回文串  #  //next[str.length]=7,r.substring(0,0)=""输出原字符串 //如果  #  next[str.length]=5 //r.substring(0,6-5),只需要第一位 String prefix = r.substring(0, r.length() - next[str.length()]); return prefix + s; } // next数组 //KMP的next[j]=x就是0~x-1与 j-x~j-1 的元素是相同的 //大概是这样 private static int[] next(String P) { int[] next = new int[P.length() + 1]; next[0] = -1; int k = -1; int i = 1; //next【k】保存的是我上次相等的时候 //不相等的时候我就从我上一次相等的时候就行匹配 //i是快指针,k是慢指针 while (i < next.length) { if (k == -1 || P.charAt(k) == P.charAt(i - 1)) { next[i++] = ++k; } else { k = next[k]; } } return next; } } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225422.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午9:22
下一篇 2026年3月17日 上午9:22


相关推荐

  • 选择排序

    选择排序

    2021年12月7日
    43
  • 巧用DeepSeek选股

    巧用DeepSeek选股

    2026年3月16日
    3
  • zip文件加密的几种破解方法

    zip文件加密的几种破解方法一、使用ZipCenOp.jar(需要java环境),在cmd中使用java-jarZipCenOp.jarrxxx.zip成功后压缩包可以直接打开ZipCenOp.jar链接:https://pan.baidu.com/s/1e0Ni2OjxmYEdOY7gGbv6gg提取码:29qi二、使用winRAR进入工具,压缩修复文件,修复完后压缩包就可以打开了上述两种…

    2022年6月1日
    297
  • 文心一言:AI人工智能领域的新标杆

    文心一言:AI人工智能领域的新标杆

    2026年3月12日
    2
  • potplayer设置快捷键[通俗易懂]

    potplayer设置快捷键[通俗易懂]引言potplayer是一款非常好用的播放器,功能齐全,且无广告,但是我在使用中按错快捷键ctrl+spotplayer就开启了一个叫采集器的东西,非常难受.话说和ctrl+s这么高频使用的快捷键冲突也太令人恼火了吧解决方法在播放区域右键鼠标打开菜单,找到选项按钮按钮????找到快捷键选项卡????添加快捷键,输入ctrl+s,然后选择未定义指令,确定,大功告成!…

    2022年5月22日
    95
  • java 基本类型 引用_语法重点

    java 基本类型 引用_语法重点Java引用类型引用数据类型:数组,类,接口。class作为成员变量类作为成员变量时,对它进行赋值的操作,实际上,是赋给它该类的一个对象。在这里插入代码片interface作为成员变量在这里插入代码片interface作为方法参数和返回值类型接口作为参数时,传递它的子类对象。接口作为返回值类型时,返回它的子类对象。在这里插入代码片…

    2022年10月19日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号