【巨大的错误】【歌词中找单词】【字符串斐波那契】

1. 巨大的错误 (错排公式)

在这里插入图片描述
想象一个原来有序的书架,每本书都有原本的位置,现在要改变他们的位置,让每本书的位置都不是原来的位置。
现在假设我们有n本书,要打乱他们的顺序:

  1. 第n本书需要放到前n-1个位置,有n-1种选择,假设放到了位置k
  2. 位置k的书需要找一个位置放
  3. 如果放到了n,就相当于n,k互换位置,剩下的n-2本书是相同的子问题
  4. 如果没有放到n,那么可以想象k的位置原本就在n,k不能放在n,剩下的n-1本书是相同的子问题

因此递推公式就是 D ( n ) = ( n − 1 ) ∗ ( D ( n − 1 ) + D ( n − 2 ) ) D(n)=(n-1)*(D(n-1)+D(n-2)) D(n)=(n1)(D(n1)+D(n2))

if __name__ == '__main__':n = int(input())a= [0] * 21a[1], a[2] = 0, 1for i in range(3,n+1):a[i] = (i-1)*(a[i-1]+a[i-2])print(a[n])

2. 歌词中找单词(二分)

在这里插入图片描述
首先遍历歌词,找到每一个歌词出现的位置,存到列表里,然后每次寻找字母位置的时候使用二分法,保证子序列的递增。

from collections import defaultdictif __name__ == '__main__':n = int(input())words = []for i in range(n):words.append(input())lyris = input()word_num = defaultdict(list)for index,word in enumerate(lyris):word_num[word].append(index)# 遍历每一个单词for word in words:flag = True# 上一个单词位置now = -1# 遍历每一个字母for j in word:l,r = 0, len(word_num[j])-1while l < r:mid = l + r >> 1if word_num[j][mid] > now:r = midelse:l = mid + 1if not word_num[j]:flag = Falsebreak# 到了最后一位,且不满足if l == len(word_num[j])-1 and word_num[j][l] < now:flag = Falsebreaknow = word_num[j][l]if flag:print('YES')else:print('NO')

3. 字符串斐波那契

递归,第n个字符串由n-1和n-2字符串得到,判断来自于哪个,继续递归。
在这里插入图片描述

def find(n,c):if n == 0:print(a0[c-1])returnif n == 1:print(a1[c-1])returnif c <= length[n-2]:find(n-2, c)else:find(n-1, c-length[n-2])if __name__ == '__main__':a0 = 'IAKIOI'a1 = 'WHENWILLSCORLLOFTAIWUCOMEOUT!!!'length = [0]*81length[0] = len(a0)length[1] = len(a1)n,c = map(int, input().split())for i in range(2, n+1):length[i] = length[i-1] + length[i-2]find(n,c)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/650752.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不对称催化(三)- 动态动力学拆分动态动力学不对称转化

一、动力学拆分的基本概念&#xff1a; 动力学拆分的最大理论产率为50%&#xff0c;通过的差异可以将两个对映异构体转化为不同构型的产物&#xff0c;通常情况下使用两个不同反应路径来实现。但是化学家们提供了一个更加实用的方法&#xff0c;通过底物的构型变化实现高于50%的…

如何解决公司内部小文件拷贝速度慢的问题?

​在当今大数据的洪流下&#xff0c;企业日常运作中频繁生成和处理的微小文件群&#xff0c;成为了一个不容忽视的挑战——尽管这些文件体积极小&#xff0c;其复制速度却出人意料地迟缓。小编将深入探讨这一现象的根源&#xff0c;并提出有效的策略&#xff0c;帮助企业破解这…

伪原创生成器:为你创作有价值的内容

伪原创生成器是一种现代写手必备的得力助手。无论您是写作新手还是经验丰富的老手&#xff0c;它都能帮助您快速生成有吸引力的文章&#xff0c;让您在竞争激烈的市场中脱颖而出。伪原创一键生成软件是一款让写作变得轻松且高效的神奇工具。它为写手们节省了大量的时间和精力&a…

适用于芯片行业的开发及管理工具:版本控制、持续集成、代码分析及项目管理工具介绍

3月28日-29日&#xff0c;2024国际集成电路展览会暨研讨会&#xff08;IIC Shanghai&#xff09;在上海成功举行。此次盛会汇聚了集成电路产业的众多领军企业&#xff0c;共同探寻和把握集成电路产业的发展脉络。 龙智携芯片研发及管理解决方案亮相展会&#xff0c;展示如何通…

静态链接lib库使用

lib库实际上分为两种&#xff0c;一种是静态链接lib库或者叫做静态lib库&#xff0c;另一种叫做动态链接库dll库的lib导入库或称为lib导入库。这两个库是不一样的&#xff0c;很多人都分不清楚&#xff0c;很容易混淆。 第一种是静态lib&#xff0c;包含了所有的代码实现的&am…

文旅IP孵化打造抖音宣传推广运营策划方案

【干货资料持续更新&#xff0c;以防走丢】 文旅IP孵化打造抖音宣传推广运营策划方案 部分资料预览 资料部分是网络整理&#xff0c;仅供学习参考。 PPT可编辑&#xff08;完整资料包含以下内容&#xff09; 目录 文旅IP抖音运营方案 1. 项目背景与目标 - 背景&#xff1a…

Selenium IDE 常见错误笔记

错误1&#xff1a;Failed:Exceeded waiting time for new window to appear 2000ms 这个错误通常出现在第一次运行时&#xff0c;有两个原因&#xff1a; Firefox阻止了弹出式窗口&#xff0c;在浏览器设置里允许这个操作即可。 有些网站设置了反扒机制&#xff0c;脚本运行…

【TCP:可靠数据传输,快速重传,流量控制,TCP流量控制】

文章目录 可靠数据传输TCP&#xff1a;可靠数据传输TCP发送方事件快速重传流量控制TCP流量控制 可靠数据传输 TCP&#xff1a;可靠数据传输 TCP在IP不可靠服务的基础上建立了rdt 管道化的报文段 GBN or SR 累计确认&#xff08;像GBN&#xff09;单个重传定时器&#xff08;像…

SpringBoot Aop使用篇

Getting Started SpringBoot AOP的实践 AOP相关的概念&#xff1a; Aspect&#xff08;切面&#xff09;&#xff1a; Aspect 声明类似于 Java 中的类声明&#xff0c;在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。就是抽离出来的逻辑类&#xff0c;比如日志、权限…

运行django

确保app被注册 urls.py中编写url 视图对应关系 命令行启动 python manage.py runserver

NIO之ByteBuffer

NIO中的ByteBuffer是缓冲区&#xff0c;其中有几个比较重要的属性capacity&#xff0c;position和limit。 capacity&#xff1a; 其中&#xff0c;capacity是缓冲区的容量大小&#xff0c;在分配内存空间后不会改变。 limit&#xff1a; limit是限制位置&#xff0c;在读写模…

VOS3000加装登陆服务器安全防护系统有用吗

VOS3000是一款专业的软交换系统&#xff0c;它主要用于中小规模的VoIP运营业务&#xff0c;包括运营费率设定、套餐管理&#xff0c;账户管理、业终端管理、网关管理、数据查询、卡类管理、号码管理、系统管理等功能1。而关于加装登陆服务器安全防护系统是否有用&#xff0c;这…