当前位置: 首页 > news >正文

Rust 力扣 - 5. 最长回文子串

文章目录

  • 题目描述
  • 题解思路
  • 题解代码
  • 题解链接

题目描述

在这里插入图片描述

题解思路

从中心点先寻找和中心点相等的左右端点,在基于左右端点进行往外扩散,直至左右端点不相等或者越界,然后左右端点这个范围内就是我们找寻的回文串,我们遍历中心点,就能执行上述流程就能查询所有的回文串,我们只需要取其中的最长的回文子串即可

题解代码

impl Solution {pub fn longest_palindrome(s: String) -> String {let s = s.as_bytes();let mut left = 0;let mut right = 0;let mut i = 0;while i < s.len() {let mut l = i;let mut r = i;while l > 0 && s[l - 1] == s[i] {l -= 1;}while r + 1 < s.len() && s[r + 1] == s[i] {r += 1;}let mut offset = 1;while l >= offset && r + offset < s.len() && s[l - offset] == s[r + offset] {offset += 1;}offset -= 1;if r - l + (offset << 1) > right - left {left = l - offset;right = r + offset;}i = r + 1;}String::from_utf8(s[left..right + 1].to_vec()).unwrap()}
}

题解链接

https://leetcode.cn/problems/longest-palindromic-substring/

http://www.lryc.cn/news/471885.html

相关文章:

  • DDOS防护介绍
  • 深入了解 kotlinx-datetime:配置与使用指南
  • Qt编程技巧小知识点(6)根据 *IDN? 对程控仪器连接状态进行确认
  • 【Android】Kotlin教程(4)
  • 机票电子行程单如何批量查验?Java机票电子行程单查验接口示例-发票查验接口
  • 记录element-ui改造select显示为table,并支持多查询条件
  • Spearman、Pearson、Euclidean、Cosine、Jaccard,用来衡量不同数据之间的相似性或差异性
  • Suno 歌曲生成 API 对接说明
  • 详细且系统的Spring Boot应用开发
  • 线程支持库(C++11)
  • 【计网】深入理解NAT机制,内网穿透与内网打洞,代理服务
  • C# 创建型设计模式----工厂模式
  • java中Scanner的nextLine和next方法
  • 2024年全国山洪径流模拟与洪水危险性评价技术及典型地区洪水淹没及损失分析
  • CDC 同步数据需要的MySQL数据权限
  • Ubuntu20.04 更新Nvidia驱动 + 安装CUDA12.1 + cudnn8.9.7
  • 算法自学 Lesson3 - 逻辑回归(LR)
  • 文件IO流
  • 拥塞控制与TCP子问题(粘包问题,异常情况等)
  • stm32入门教程--DMA 超详细!!!
  • 【使用Flask构建RESTful API】从零开始开发简单的Web服务!
  • 用sdcc给51单片机编译C程序
  • Java Lock LockSupport 源码
  • Elasticsearch基础操作入门
  • 跨域问题解决办法
  • 【数据结构与算法】力扣 23. 合并 K 个升序链表
  • Java Lock CountDownLatch 总结
  • vue+spreadjs开发
  • 针对初学者的PyTorch项目推荐
  • Helm Chart文件介绍