当前位置:网站首页>回文串求解的进阶方法
回文串求解的进阶方法
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(跳跃找和非跳跃找),回文树。
后面的内容慢慢补()
边栏推荐
猜你喜欢

淘系资深工程师整理的300+项学习资源清单(2021最新版)

21天学习挑战赛安排

Matlab论文插图绘制模板第41期—气泡图(bubblechart)

leetcode一步解决链表反转问题

关于鸿蒙系统 JS UI 框架源码的分析

apisix-入门使用篇

在腾讯做外包测试的那些日子.....

H5 access payment process - WeChat payment & Alipay payment

51 MCU peripherals: DS18B20

Use the browser's local storage to realize the function of remembering the user name
随机推荐
MySQL导入sql文件的三种方法
配合蓝牙打印的encoding-indexes.js文件内容:
el-input can only input integers (including positive numbers, negative numbers, 0) or only integers (including positive numbers, negative numbers, 0) and decimals
apisix-Getting Started
51单片机外设篇:ADC
在腾讯做外包测试的那些日子.....
TikTok平台的两种账户有什么区别?
LeetCode刷题系列 -- 10. 正则表达式匹配
淘系资深工程师整理的300+项学习资源清单(2021最新版)
说好的女程序员做测试有优势?面试十几家,被面试官虐哭~~
[PSQL] window function, GROUPING operator
高防服务器防御的原理是什么
程序员最重要的能力是什么?
51单片机外设篇:点阵式LCD
关于鸿蒙系统 JS UI 框架源码的分析
无代码生产新模式探索
PIL与numpy格式之间的转换
The original question on the two sides of the automatic test of the byte beating (arranged according to the recording) is real and effective 26
leetcode一步解决链表反转问题
Alluxio为Presto赋能跨云的自助服务能力