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

企业自建服务器网站建设流程建设网站需要注意事项

企业自建服务器网站建设流程,建设网站需要注意事项,网站服务器维护内容,个人网站 域名选择Leetcode 3474. Lexicographically Smallest Generated String 1. 解题思路2. 代码实现 题目链接:3474. Lexicographically Smallest Generated String 1. 解题思路 这一题思路上主要就是分成两步: 找到所有为T的位置,此时其对应的位置及…
  • Leetcode 3474. Lexicographically Smallest Generated String
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3474. Lexicographically Smallest Generated String

1. 解题思路

这一题思路上主要就是分成两步:

  1. 找到所有为T的位置,此时其对应的位置及其后续m-1个字符必然就是str2
  2. 在所有未填的字符当中填入其他字符使其在满足条件的情况下字典序最小

其中,有关第一步,我们需要保证我们在填入本身的合法性,因此我们需要在填入位置重叠的情况下判断填入的合法性,即交错的部分必须完全一致,此时我们就是要判断对应位置的子串是否与头部位置的子串完全重合。这个我们可以轻松地通过z算法进行实现,对应的内容可以参考拙作《经典算法:Z算法(z algorithm)》,这里我们就不过度展开了。

另外,关于第二步,我们只需要考察在每一个未填的位置可以填入最小字符a即可,这样,我们就可以确保对应的字符串合法且字典序最小。

而要判断某个位置是否可以填入某个字符,这里我做的比较暴力,即考察包含其本身的前m个字符分别作为开头时是否刚好有某个子串恰好为str2,如果没有就是合法的,反之就必然不合法。

最后需要注意的是,我们还需要考察一下每一个F所在的位置对应的子串是否真的都不合法,它有时会和第一步产生矛盾,此时我们需要去掉对应的情况。

2. 代码实现

给出python代码实现如下:

def z_algorithm(s):n = len(s)z = [0 for _ in range(n)]l, r = -1, -1for i in range(1, n):if i > r:l, r = i, iwhile r < n and s[r-l] == s[r]:r += 1z[i] = r-lr -= 1else:k = i - lif z[k] < r - i + 1:z[i] = z[k]else:l = iwhile r < n and s[r-l] == s[r]:r += 1z[i] = r-lr -= 1z[0] = nreturn zclass Solution:def generateString(self, str1: str, str2: str) -> str:n, m = len(str1), len(str2)z = z_algorithm(str2 + str2)[m:]ans = ["" for _ in range(n+m-1)]nxtT = nfor i in range(n-1, -1, -1):ch = str1[i]if ch == "T":if nxtT == n or nxtT-i >= m:for j in range(i, i+m):ans[j] = str2[j-i]elif z[nxtT-i] >= m-(nxtT-i):for j in range(i, nxtT):ans[j] = str2[j-i]else:return ""nxtT = idef is_allowed(idx, ch):lb = max(idx-m+1, 0)rb = min(n-1, idx)def is_not_same(i):return str2[idx-i] != ch or any(ans[i+j] != str2[j] for j in range(m) if i+j != idx)return all(is_not_same(i) for i in range(lb, rb+1))prefix = str2[:-1]for i in range(n+m-1):if ans[i] != "":if i < n and str1[i] == "F" and all(ans[i+j] == str2[j] for j in range(m)):return ""continuefor ch in string.ascii_lowercase:if is_allowed(i, ch):ans[i] = chbreakreturn "".join(ans)

提交代码评测得到:耗时2665ms,占用内存18.4MB。

http://www.dtcms.com/a/525524.html

相关文章:

  • 描述性统计 vs 推断性统计:观察与判断的区别
  • Power BI 10 月功能更新全解析
  • C语言解决轮转数组
  • 网站备案 上线app网站开发住房公积金
  • 网站建设后期需要做什么提供营销网站建设公司
  • 开发运维警示录-《论日志和监控的重要性》_20251024
  • 跨境电商代采:1688商品采集要用到的API列表分享
  • SAP SD交货单批导功能分享
  • 网站栏目设计网站做哪块简单
  • 怎么给网站做二维码龙岗网站建设公司效果
  • 网站建设开题报告网站建站工具有哪些
  • 电话交换机软件3CX安全访问实践:屏蔽IP访问,仅允许域名访问
  • Linux系统中配置history命令显示时间、IP、账号和操作命令
  • springboot3 uuid 唯一标识入门与实战
  • P1041 [NOIP 2003 提高组] 传染病控制
  • 武进建设局网站和业务多一样的平台
  • eclipse可以做门户网站嘛公司建设网站的 计划书
  • Linux小课堂: 从IPv4到IPv6、主机名解析及网络接口管理
  • ant design vue使用date组件,判断要清空却失效的问题
  • 百度seo搜索百度推广优化技巧
  • 手机版网站建设方案福建建设工程信息网官网查询
  • 终结工艺数据分散管理:金仓数据库平替MongoDB,实现参数、配方、流程一体贯通
  • SAP 长文本弹窗函数 及控件使用
  • 常规同轴光源在工业视觉检测上的应用
  • 建设国家游戏网站免费创建音乐网站
  • 网站源码怎么做网站热点新闻事件及观点简单版
  • windows服务器mstsc远程桌面连接输入用户名后连接时自带拼接了本机计算机名称导致用户名一直错误,无法远程,使用.\用户名格式解决
  • 【Diffusion Model】奠基之作DDPM详解
  • 4a级景区网站建设方寸网站建设
  • 【图像超分】论文复现:轻量化超分 | SPAN的Pytorch源码复现,跑通源码进行训练、测试