Leetcode的Longest Palindromic Substring怎么找最长回文子串?

2026-04-16 12:152阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计215个文字,预计阅读时间需要1分钟。

Leetcode的Longest Palindromic Substring怎么找最长回文子串?

java/** * 5. 最长回文子串 * 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 * 示例: * 输入:s=babad * 输出:bab * 说明: * aba 也是一个有效答案。 */

Leetcode的Longest Palindromic Substring怎么找最长回文子串?

LongestPalindromicSubstring.java

/** * 5. Longest Palindromic Substring * Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. * Example: * Input: "babad" * Output: "bab" * Note: "aba" is also a valid answer. * Input: "cbbd" * Output: "bb" * @param s * @return */ public static String longestPalindrome(String s) { if (s.length() == 1) { return s; } if (s.length() == 2) { return s.charAt(0) == s.charAt(1) ? s : ""; } String resultString = ""; for (int i = 0; i < s.length(); i++) { for (int j = i + 1; j < s.length(); j++) { String tmp = s.substring(i, j+1); if(tmp.equals(reverse(tmp)) && tmp.length()>= resultString.length()){ resultString = tmp; } } } return resultString; } private static String reverse(String s){ StringBuffer strBuffer = new StringBuffer(); for(int i=s.length()-1;i>=0;i--){ strBuffer.append(s.charAt(i)); } return strBuffer.toString(); }

本文共计215个文字,预计阅读时间需要1分钟。

Leetcode的Longest Palindromic Substring怎么找最长回文子串?

java/** * 5. 最长回文子串 * 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 * 示例: * 输入:s=babad * 输出:bab * 说明: * aba 也是一个有效答案。 */

Leetcode的Longest Palindromic Substring怎么找最长回文子串?

LongestPalindromicSubstring.java

/** * 5. Longest Palindromic Substring * Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. * Example: * Input: "babad" * Output: "bab" * Note: "aba" is also a valid answer. * Input: "cbbd" * Output: "bb" * @param s * @return */ public static String longestPalindrome(String s) { if (s.length() == 1) { return s; } if (s.length() == 2) { return s.charAt(0) == s.charAt(1) ? s : ""; } String resultString = ""; for (int i = 0; i < s.length(); i++) { for (int j = i + 1; j < s.length(); j++) { String tmp = s.substring(i, j+1); if(tmp.equals(reverse(tmp)) && tmp.length()>= resultString.length()){ resultString = tmp; } } } return resultString; } private static String reverse(String s){ StringBuffer strBuffer = new StringBuffer(); for(int i=s.length()-1;i>=0;i--){ strBuffer.append(s.charAt(i)); } return strBuffer.toString(); }