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

刷题记录(240619)

meituan0427

第一题

小美拿到了一个字符串,她准备把其中所有的"mei"子串替换为"tuan"子串,你能帮帮她吗?

输入描述

一个仅由小写字母组成的字符串。长度不超100000

输出描述

修改后的字符串。

示例
输入

meituan

输出

tuantuan

思路
直接模拟即可

s = input().replace("mei","tuan")
print(s)

第二题

小美拿到了一个字符矩阵,她定义一个矩形区域是“特殊的”,当且仅当这个矩形区域中没有两个相同的字符。 现在小美想知道,有多少个2行2列的矩阵区域是特殊的?
输入描述
第一行输入两个正整数n,m,代表矩阵的行数和列数。
接下来的n行,每行输入一个长度为m的、仅由小写字母组成的字符串,代表小美拿到的字符矩阵。
1<=n,m<=200
输出描述
一个整数,代表"特殊的"矩形区域的数量。
示例
输入

2 3
abb
aac

输出

0

思路
直接枚举即可,利用set的性质,如果len(set)==4,那么证明这个矩阵里面没有重复字符

代码

n,m = list(map(int,input().split()))
matrix = [list(input()) for _ in range(n)]
res = 0
for i in range(n-1):for j in range(m-1):s = set()for x in range(2):for y in range(2):s.add(matrix[i+x][j+y])if len(s) == 4:res += 1
print(res)

第三题

小美拿到了一个数组,她每次操作可以将两个相邻元素ai合并为一个元素,合并后的元素为原来两个元素之和。小美希望最终数组的最小值不小于k。她想知道有多少种不同的合并结果?

输入描述

第一行输入两个正整数n,k,代表数组大小和数组的最大值。

第二行输入个正整数ai,代表小美拿到的数组。

1<=n,k,ai<=200

输出描述

输出一个整数,代表小美可以得到多少种不同的结果。由于结果可能很大,输出对10^9+7取模的结果。

示例 1

输入

4 4
2 3 4 5

输出

4

说明
可能得到的数组有:[5,4,5]、[9,5]、[5,9]、[14]这四种。

思路
动态规划
对于每一个数字来说,如果当前和是小于k的,那么只能选择合并;否则的话,合并和不合并都可以。
f[i,j] 考虑i往后的数字,当前和是p,组成满足条件的方案数有多少。
推导如下:
if j>=k: f[i,j] += f[i+1,j+a[i]] + f[i+1,a[i]]
else: f[i,j] = f[i+1,j+a[i]]

代码

n,k = list(map(int,input().split()))
arr = list(map(int,input().split()))
MOD = 10**9+7
dp = [[-1]*(sum(arr)+1) for _ in range(n+1)]
def dfs(i,p):if i == n:return 1 if p >= k else 0if dp[i][p] != -1:return dp[i][p]cnt = 0if p >= k:cnt += dfs(i+1,arr[i]) + dfs(i+1,p+arr[i])else:cnt += dfs(i+1,p+arr[i])cnt %= MODdp[i][p] = cntreturn dp[i][p]print(dfs(0,0))

相关文章:

  • JSON学习
  • .Net多线程Threading相关详解
  • 数据库大作业——音乐平台数据库管理系统
  • 爬虫的法律风险是什么?以及合法使用爬虫技术的建议。
  • 基于深度学习的光流预测
  • Elasticsearch搜索引擎(高级篇)
  • k8s快速上手实操
  • llama-factory微调chatglm3
  • MySQL数据库的列类型
  • 如何理解shell命令 cd $(dirname $0)
  • matlab 路面点云标线提取
  • 2024年应用科学、航天航空与核科学国际学术会议(ICASANS 2024)
  • 睿治数据治理平台焕新升级,推出全新建模与调度平台
  • 【面试八股总结】Redis数据结构及底层实现
  • 小抄 20240612
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 78. Subsets
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Js基础——数据类型之Null和Undefined
  • leetcode388. Longest Absolute File Path
  • Python十分钟制作属于你自己的个性logo
  • vagrant 添加本地 box 安装 laravel homestead
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 微信小程序实战练习(仿五洲到家微信版)
  • 为视图添加丝滑的水波纹
  • 小程序 setData 学问多
  • nb
  • Python 之网络式编程
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ‌前端列表展示1000条大量数据时,后端通常需要进行一定的处理。‌
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (03)光刻——半导体电路的绘制
  • (06)金属布线——为半导体注入生命的连接
  • (27)4.8 习题课
  • (55)MOS管专题--->(10)MOS管的封装
  • (C)一些题4
  • (function(){})()的分步解析
  • (k8s中)docker netty OOM问题记录
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (学习日记)2024.01.09
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (转)德国人的记事本
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码