力扣2025.10.19每日一题

用了斐蜀定理

那么看到形如左半边的式子,则可按照这个方向思考。

在本题的运用是,确定能到第一个位置的元素位置,和确定num通过加法操作,能到的最小值。

同时注意对奇数和偶数位置的轮换,也就是说奇数的轮换操作有两个开头,偶数的轮换操作只有一个开头。

学习的灵神代码

代码如下:

python 复制代码
class Solution:
    def findLexSmallestString(self, s: str, a: int, b: int) -> str:
        s = list(map(int,s))
        n = len(s)
        step = gcd(b,n)
        g  = gcd(a,10)
        ans = [inf]
        def modify(start):
            ch = t[start]
            inc = ch%g - ch 
            if inc:
                for j in range(start,n,2):
                    t[j] = (t[j] +inc)%10 
        for  i in range(0,n,step):
            t = s[i:] +s[:i]
            modify(1)
            if step%2 :
                modify(0)
            ans = min(ans,t)
        return ''.join(map(str,ans))

还有就是这个操作很值得注意!!!

如果 gcd(b,n) 是奇数,轮转一次后,原来的偶数下标变成奇数下标。可以先轮转一次,执行累加,再轮转到我们想要的位置。可以视作我们拥有了「对偶数下标执行累加操作」的能力。

作者:灵茶山艾府

链接:https://leetcode.cn/problems/lexicographically-smallest-string-after-applying-operations/solutions/3797297/mei-ju-lun-zhuan-dao-zui-zuo-bian-de-xia-wuu3/

来源:力扣(LeetCode)

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关推荐
DuHz3 小时前
C程序中的数组与指针共生关系
linux·c语言·开发语言·嵌入式硬件·算法
·白小白3 小时前
力扣(LeetCode) ——11.盛水最多的容器(C++)
c++·算法·leetcode
007php0074 小时前
百度面试题解析:Zookeeper、ArrayList、生产者消费者模型及多线程(二)
java·分布式·zookeeper·云原生·职场和发展·eureka·java-zookeeper
沐浴露z5 小时前
【JVM】详解 垃圾回收
java·jvm·算法
代码欢乐豆5 小时前
编译原理机测客观题(7)优化和代码生成练习题
数据结构·算法·编译原理
程序员小远6 小时前
软件测试之压力测试详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·压力测试
Scc_hy6 小时前
强化学习_Paper_2000_Eligibility Traces for Off-Policy Policy Evaluation
人工智能·深度学习·算法·强化学习·rl
leke20037 小时前
2025年10月17日
算法
CoovallyAIHub7 小时前
Mamba-3震撼登场!Transformer最强挑战者再进化,已进入ICLR 2026盲审
深度学习·算法·计算机视觉