您现在的位置是:亿华云 > 数据库
LeetCode - 求最长的镜像字符串
亿华云2025-10-09 03:49:38【数据库】6人已围观
简介前言我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。微博:@故胤道长[1])的 Swift 算法题题解整理为文字版以方便大家学习与阅读。LeetCode
前言
我们社区陆续会将顾毅(Netflix 增长黑客,求最《iOS 面试之道》作者,长的串ACE 职业健身教练。镜像微博:@故胤道长[1])的字符 Swift 算法题题解整理为文字版以方便大家学习与阅读。
LeetCode 算法到目前我们已经更新了 3 期,求最我们会保持更新时间和进度(周一、长的串周三、镜像周五早上 9:00 发布),服务器租用字符每期的求最内容不多,我们希望大家可以在上班路上阅读,长的串长久积累会有很大提升。镜像
不积跬步,字符无以至千里;不积小流,求最无以成江海,长的串Swift社区 伴你前行。亿华云镜像
难度水平:中等
1. 描述
给定一个字符串 s, 返回 s 中的最长回文子字符串.
2. 示例
示例 1
输入:s = "babad" 输出: "bab" 解释: "aba" 同样是有效答案。示例 2
输入:s = "cbbd" 输出: "bb"示例 3
输入:s = "a" 输出: "a"示例 4
输入:s = "ac" 输出: "a"约束条件:
1 <= s.length <= 1000 s 仅由数字和英文字母组成。3. 答案
class LongestPalindromicSubstring { func longestPalindrome(_ s: String) -> String { guard s.count > 1 else { return s } let sChars = Array(s) var maxLen = 0, start = 0 for i in 0..<sChars.count { searchPalindrome(sChars, i, i, &start, &maxLen) searchPalindrome(sChars, i, i + 1, &start, &maxLen) } return String(sChars[start..<start + maxLen]) } private func searchPalindrome(_ chars: [Character], _ l: Int, _ r: Int, _ start: inout Int, _ maxLen: inout Int) { var l = l, r = r while l >= 0 && r < chars.count && chars[l] == chars[r] { l -= 1 r += 1 } if maxLen < r - l - 1 { start = l + 1 maxLen = r - l - 1 } } } 主要思想:从中心的每个索引中找到最长的镜像字符串。 时间复杂度:O(n^2) 空间复杂度:O(1)该算法题解的 github 仓库是:LeetCode-Swift[2]
点击前往 LeetCode[3] 练习
参考资料
[1]@故胤道长: https://m.weibo.cn/u/1827884772
[2]LeetCode-Swift: https://github.com/soapyigu/LeetCode-Swift
[3]LeetCode: https://leetcode.com/problems/longest-palindromic-substring/
亿华云计算很赞哦!(5749)
上一篇: ④注册门槛低
相关文章
- 如果你的潜在终端必须是这个米(域名),那么潜在终端并不多,也没有硬通货,那么你的域名应该在终端有兴趣购买时出售。否则,你可能得自己留着吃。
- 2021 总结:学习新编程语言的五个小知识
- CentOS 7中成功安装MariaDB的方法教程
- 2021,17个非常流行的 Vue 插件
- 一下域名,看有没有显示出你所解析的IP,如果有,就说明解析是生效的;如果没有,就说明解析是不生效的。
- 嵌入式 C 语言中三块难啃的硬骨头
- MariaDB配置双主复制方案
- 国际域名有哪些?
- 因为域名解析需要同步到DNS根服务器,而DNS根服务器会不定时刷,只有DNS根服务器刷新后域名才能正常访问,新增解析一般会在10分钟左右生效,最长不会超过24小时,修改解析时间会稍微延长。
- Go 语言里怎么正确实现枚举?答案藏着官方的源码里