主页 > 互联网  > 

java练习(33)

java练习(33)

ps:题目来自力扣

最强回文子串

给你一个字符串 s,找到 s 中最长的 回文 子串。

class Solution { public String longestPalindrome(String s) { if (s == null || s.length() < 1) { return ""; } int start = 0, end = 0; for (int i = 0; i < s.length(); i++) { // 以单个字符为中心扩展 int len1 = expandAroundCenter(s, i, i); // 以两个字符为中心扩展 int len2 = expandAroundCenter(s, i, i + 1); int len = Math.max(len1, len2); if (len > end - start) { start = i - (len - 1) / 2; end = i + len / 2; } } return s.substring(start, end + 1); } private int expandAroundCenter(String s, int left, int right) { while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) { left--; right++; } return right - left - 1; } }

标签:

java练习(33)由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“java练习(33)