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

尺取法

尺取法是一种线性的高效率算法。记 (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 += 1
        j -= 1
        if j <= i:
            print('Y')
            break
    else:
        print("N"

http://www.kler.cn/a/1387.html

相关文章:

  • vue 导出excel接口请求和axios返回值blob类型处理
  • 直流无刷电机控制(FOC):电流模式
  • XML通过HTTP POST 请求发送到指定的 API 地址,进行数据回传
  • JavaScript系列(16)--原型继承
  • 68.基于SpringBoot + Vue实现的前后端分离-心灵治愈交流平台系统(项目 + 论文PPT)
  • Node.js JXcore 打包教程
  • SpringCloud笔记(Hoxton)——Netflix之Ribbon负载均衡
  • 知识点16--k8s资源清单定义入门
  • 好久没写过Qt了,写个Qt回味一下信号与槽
  • 海思SD3403/SS928V100开发(7)mcp2515-SPI转CAN驱动开发
  • Linux用户和权限 —— 操作演示
  • 【5G RRC】NR测量事件介绍
  • 关于字符类型
  • 基于 gma 绘制古代洛阳 5 大都城遗址空间分布地图
  • 使用vite创建vue3工程
  • 【SpringBoot项目实战】瑞吉外卖优化篇
  • 美团笔试-3.18
  • 微前端-qiankun
  • 分布式微服务架构下网络通信的底层实现原理
  • GPT-4最震撼我的一点
  • Python截图自动化工具
  • MySQL高级面试题整理
  • 面试造火箭?GitHub顶级“java 复习宝典“一一攻克!star破数十万
  • 计算机面试常见问答题目
  • 解读Flaky Test
  • 并发基础之线程池(Thread Pool)