博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 466. Count The Repetitions [Python]
阅读量:4090 次
发布时间:2019-05-25

本文共 977 字,大约阅读时间需要 3 分钟。

 好复杂,没有理解真谛,看巨神的思路吧。

简单写一点分析,目的就是找到循环节,用dic来记录上一次同样的字母在各自s1和s2里的位置,当又一次重复时,这里就是循环节,然后查找完全复制n1次后的到的大s1中还有多少个这样的循环节,证明起码可以让s2复制多少次了。随后继续从目前的次数所到达的大s1的位置往后找,看可以找,看是否还能继续延展,使得s2要复制更多出来。

class Solution:    def getMaxRepetitions(self, s1: str, n1: int, s2: str, n2: int) -> int:           if not set(s1) >= set(s2):return 0        l1 = len(s1)        l2 = len(s2)        dic = collections.defaultdict(dict)        x1 = x2 = 0        while x1 < l1*n1:            while s1[x1%l1] != s2[x2%l2]:                x1 += 1            if x1 >= l1*n1:                break            y1,y2 = x1%l1, x2%l2            if y2 not in dic[y1]:                dic[y1][y2] = x1,x2            else:                lastx1, lastx2 = dic[y1][y2]                around = (l1*n1 - lastx1)//(x1 - lastx1)                x1 = around* (x1 - lastx1) + lastx1                x2 = around* (x2 - lastx2) + lastx2            if x1 < l1*n1:                x1 += 1                x2 += 1        return int(x2//(l2*n2))

 

转载地址:http://zsjii.baihongyu.com/

你可能感兴趣的文章
电机堵转
查看>>
carzepony也在想往FreeRTOS上迁移
查看>>
可以买个好点的电烙铁
查看>>
ACfly调参记录(包括ACfly-F330和ACfly-T265)
查看>>
一定记得每飞几次或者隔一天要把螺丝和浆帽拧一次,确实会松的
查看>>
《多旋翼无人飞行器嵌入式飞控开发指南》里基于FreeRTOS的无人机软件框架
查看>>
思岚A1的SDK其实很好读懂,每个函数清晰明了,可以直接调用
查看>>
串级 PID 为什么外环输出是内环的期望?(和我之前对串级PID的总结一样)
查看>>
我刚刚才完全清楚GPS模块的那根杆子是怎么固定安装好的
查看>>
去github里面找找也没有别人无人机+SLAM的工程
查看>>
现在明白为什么无名博客里好几篇文章在讲传感器的滞后
查看>>
Pixhawk解锁常见错误
查看>>
ROS是不是可以理解成一个虚拟机,就是操作系统之上的操作系统
查看>>
用STL algorithm轻松解决几道算法面试题
查看>>
ACfly之所以不怕炸机因为它觉得某个传感器数据不安全就立马不用了
查看>>
我发觉,不管是弄ROS OPENCV T265二次开发 SDK开发 caffe PX4 都是用的C++
查看>>
ROS的安装(包含文字和视频教程,我的ROS安装教程以这篇为准)
查看>>
原来我之前一直用的APM固件....现在很多东西明白了。
查看>>
realsense-ros里里程计相关代码
查看>>
似乎写个ROS功能包并不难,你会订阅话题发布话题,加点逻辑处理,就可以写一些基础的ROS功能包了。
查看>>