力扣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)

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

相关推荐
naruto_lnq14 小时前
分布式系统安全通信
开发语言·c++·算法
Jasmine_llq15 小时前
《P3157 [CQOI2011] 动态逆序对》
算法·cdq 分治·动态问题静态化+双向偏序统计·树状数组(高效统计元素大小关系·排序算法(预处理偏序和时间戳)·前缀和(合并单个贡献为总逆序对·动态问题静态化
爱吃rabbit的mq15 小时前
第09章:随机森林:集成学习的威力
算法·随机森林·集成学习
(❁´◡`❁)Jimmy(❁´◡`❁)16 小时前
Exgcd 学习笔记
笔记·学习·算法
YYuCChi16 小时前
代码随想录算法训练营第三十七天 | 52.携带研究材料(卡码网)、518.零钱兑换||、377.组合总和IV、57.爬楼梯(卡码网)
算法·动态规划
不能隔夜的咖喱17 小时前
牛客网刷题(2)
java·开发语言·算法
VT.馒头17 小时前
【力扣】2721. 并行执行异步函数
前端·javascript·算法·leetcode·typescript
进击的小头17 小时前
实战案例:51单片机低功耗场景下的简易滤波实现
c语言·单片机·算法·51单片机
咖丨喱18 小时前
IP校验和算法解析与实现
网络·tcp/ip·算法
罗湖老棍子19 小时前
括号配对(信息学奥赛一本通- P1572)
算法·动态规划·区间dp·字符串匹配·区间动态规划