当前位置:网站首页>回文串求解的进阶方法
回文串求解的进阶方法
2022-08-02 05:10:00 【繁水682】
首先是给出一个例子:
求一串字符串中的回文串的个数。
拿到这道题我们知道暴力求解回文串复杂度是O(n)
i表示开头字符,j表示结尾字符,然后判断是不是回文串
每个操作一遍O(n),就是n^3,这也太大了。
然后我们发现回文串是对称的,那么如果从中间开始找是不是回文串就可以减少时间复杂度。于是乎,双指针思路:
对于i,分两种,一种让(l=i,r=i)一种让(l=i-1,r=i),每次判断让l--,r++,然后遇到字符串继续执行并++cnt,否则跳出来。
好在哪里?
此时由于字符串的对称,查找是否为字符串和让查找范围变大是同时进行的,这从原来的j,k两层变成了,不断两边延伸的思想。
这是我能想到的利用回文串的对称性一种改进方式。
后面就不是我的小笨脑子能想到的了。。
先放这里,好几种回文串思路。
但首先要说明,这些东西要活用,比如求最长回文串也能用于求回文串长度,从中间找也能求出末尾为X的回文串(特判一下就好了)。
不活用,就白学
回文串进阶思路:马拉车,dp(跳跃找和非跳跃找),回文树。
后面的内容慢慢补()
边栏推荐
猜你喜欢
本周大新闻|苹果MR已进行Pre-EVT测试,Quest 2涨价100美元
51 MCU peripherals: DS18B20
21天学习挑战赛安排
Alluxio为Presto赋能跨云的自助服务能力
The company does not pay attention to software testing, and the new Ali P8 has written a test case writing specification for us
swinIR论文阅读笔记
25K test old bird's 6-year experience in interviews, four types of companies, four types of questions...
【C语言】LeetCode26.删除有序数组中的重复项&&LeetCode88.合并两个有序数组
腾讯大咖分享 | 腾讯Alluxio(DOP)在金融场景的落地与优化实践
Google notes cut hidden plug-in installation impression
随机推荐
Introduction to Grid Layout
【漫画】2021满分程序员行为对照表(最新版)
golang generics
ApiPost 真香真强大,是时候丢掉 Postman、Swagger 了
[PSQL] 函数、谓词、CASE表达式、集合运算
MySQL导入sql文件的三种方法
LeetCode刷题系列 -- 787. K 站中转内最便宜的航班
金山云团队分享 | 5000字读懂Presto如何与Alluxio搭配
Mysql数据库 | 基于Docker搭建Mysql-8.0以上版本主从实例实战
51单片机外设篇:ADC
51单片机外设篇:点阵式LCD
APP Bluetooth connection test of test technology
C 竞赛——捕鱼
navicat无法连接mysql超详细处理方法
驱动页面性能优化的3个有效策略
Redis集群模式
51单片机外设篇:DS18B20
跨桌面端Web容器演进
Stress testing and performance analysis of node projects
Detailed explanation of the software testing process (mind map) of the first-tier manufacturers