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

尺取法

尺取法是一种线性的高效率算法。记 (L, R ) 为一个序列内以L为起点的最短合法区间,
如果R随L的增大而增大的,就可以使用尺取法。具体的做法是不断的枚举 L,同时求出R。
因为 R 随 L增大而增大,所以总时间复杂度为 O(n)

指针i、j的两种方向:

反向扫描:i、j方向相反,i从头到尾,j从尾到头,在中间相会。 “左右指针”

同向扫描:i、j方向相同,都从头到尾,速度不同,例如让j跑在i前面。 “快慢指针”

反向扫描:回文判定

【题目描述】给定一个长度为 n 的字符串 S。请你判断字符串 S是否回文。
【输入描述】输入仅1行包含一个字符串S。1≤|S|≤10**6,保证S只包含大小写、字母。
【输出描述】若字符串S为回文串,则输出Y,否则输出N。

反向扫描的两个指针i、j,指针i从左向右扫描,指针j从右向左扫描,在中间i < j处相遇并停止

s = input()
i = 0
j = len(s) - 1
if i == j:print('Y')
else:while s[i] == s[j]:i += 1j -= 1if j <= i:print('Y')breakelse:print("N"
http://www.lryc.cn/news/40906.html

相关文章:

  • 20.有效的括号
  • 使用QT C++编写一个带有菜单和工具条的文本编辑器
  • 文法和语言的基本知识
  • 学习其他人的代码,成为更好的程序员
  • 新星计划-JAVA学习路线及书籍推荐
  • 【大数据】Hive系列之- Hive-DML 数据操作
  • day2 —— 判断字符串中的字符是否唯一
  • 176万,GPT-4发布了,如何查看OpenAI的下载量?
  • 蓝蓝算法题(一)
  • Python截图自动化工具
  • 网络作业2【计算机网络】
  • 如何给网页加速,如何加速网页速度?
  • linux kernel 5.0 inline hook框架
  • 【Java版oj】day12二进制插入、查找组成一个偶数最接近的两个素数
  • 【24】Verilog进阶 - 序列检测2
  • 详解线段树 ---更新查询
  • 【C语言进阶:刨根究底字符串函数】strncpy、strncat、strncmp函数
  • 计算机面试常见问答题目
  • mac pro m1:安装dump文件内存分析工具——MAT
  • 并发基础之线程池(Thread Pool)
  • 【C语言进阶】内存函数
  • Java开发 - ELK初体验
  • AI_Papers周刊:第六期
  • JS运行环境、包管理、打包工具总结
  • day4网络编程(广播和组播)
  • Vue3 自动引入组件及函数、动态生成侧边栏路由
  • 人工智能交互系统界面设计
  • 蓝桥杯嵌入式第一课--创建工程
  • Java面向对象:接口的学习
  • 西瓜视频登录页面