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

修建灌木顺子日期

题目

有 N 棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晩会修剪一棵灌 木, 让灌木的高度变为 0 厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始, 每天向右修剪一棵灌木。当修剪了最右侧的灌木后, 她会调转方向, 下一天开 始向左修剪灌木。直到修剪了最左的灌木后再次调转方向。然后如此循环往复。

灌木每天从早上到傍晩会长高 1 厘米, 而其余时间不会长高。在第一天的 早晨, 所有灌木的高度都是 0 厘米。爱丽丝想知道每棵灌木最高长到多高。

输入格式

一个正整数 N, 含义如题面所述。

输出格式

输出 N 行, 每行一个整数, 第 i 行表示从左到右第 i 棵树最高能长到多高。

 

思路

自己画了一下,n=3的时候我画出来是3 1 3,也就是比题目少一,不知道是不是我画错了(我知道了!因为我把要修剪的那棵树修剪当天的高度没计算 )。n = 4的时候就发现规律了,序号为i的高度= 2n- 2*i 且呈对称相等。也就是说分两种情况,N分别为奇偶数时。

代码 

import os
import sys# 请在此输入您的代码
n = int(input())
h1 = []
h = []
for i in range(1, n//2 + 1): # 由于是对称的 因此只计算前半部分h1.append(2*n-2*i)
if n % 2 == 0: # 偶数棵h = h1[:] # 深复制h1.reverse() # 逆序后进行拼接h = h + h1
else:h1.append(2*n-2*(n//2 + 1))h = h1[:] # h = h1 为浅复制 共享同一内存 后面对h1逆序排列 #h也会改变 因此这里使用切片的方法进行深复制 注意切片方法只能对第一层进行深复制 即如果存在列表中的列表还是共享的同一内存h1.reverse()h = h + h1[1:]
for i in h:print(i)

 Tips

最开始直接使用h = h1,结果老是不对,后面才发现是因为list的深复制浅复制的原因。

直接赋值给h1 实际两个变量使用的是同一内存, 对h1进行reverse的时候,h也会改变。

使用[:]切片的方式进行复制,第一层的list是深复制。 

题目

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456 等。顺子日期指的就是在日期的 yyyymmdd 表示法中,存在任意连续的三位数是一个顺子的日期。

例如 20220123 就是一个顺子日期,因为它出现了一个顺子:123; 而 20221023 则不是一个顺子日期,它一个顺子也没有。

小明想知道在整个 2022 年份中,一共有多少个顺子日期?

思路

暴力解题,使用datetime这个库中的timedelta函数,进行日期加,对每个日期中是否存在顺子进行判断。 

代码 

import os
import sys
import datetime# 请在此输入您的代码start = datetime.date(2022, 1, 1)
end  = datetime.date(2023, 1, 1)
count = 0
def is_shun(date):day=str(date).replace('-','')#将日期中的-去掉for i in range(6):if int(day[i]) == int(day[i+1]) - 1 and int(day[i+1]) == int(day[i+2]) - 1:return Truereturn Falsewhile start != end:if is_shun(start):count += 1start += datetime.timedelta(days = 1)
print(count)

 

http://www.lryc.cn/news/43974.html

相关文章:

  • 深入学习JavaScript系列(七)——Promise async/await generator
  • Mybatis中的Map的使用和模糊查询的需求实现及其防SQL注入优化
  • 【redis】redis缓存更新策略
  • LeetCode刷题--复制带随机指针的链表
  • 关于我的第一台电脑 华硕
  • 【华为OD机试 2023最新 】 最大化控制资源成本(C++ 100%)
  • leetcode 有序数组的平方(977)
  • 文本三剑客之awk
  • RK3568平台开发系列讲解(驱动基础篇)IS_ERR函数的使用
  • 特殊的类之注解
  • 商业分享:盲盒电商开启电商新可能
  • 【计算机架构】如何计算 CPU 时间
  • 银行数字化转型导师坚鹏:银行行长如何进行数字化转型
  • N32G45x学习笔记--- gpio引脚复用
  • ArcGIS Pro中使用深度学习的高分辨率土地覆盖制图
  • 【学习笔记】「NOI2018」冒泡排序
  • 【Ruby学习笔记】3.Ruby 语法及数据类型
  • 华为OD机试题【字符匹配】用 Java 解 | 含解题说明
  • JavaScript数组对象的浅拷贝与深拷贝(二)实现对象深拷贝的方法(5种)
  • iPhone屏幕适配(之屏幕尺寸)
  • 手机变砖修复神器之 8 个的 Android手机系统修复工具
  • 稀疏矩阵(Sparse Matrix)
  • 深度学习中的损失函数
  • English Learning - L2 语音作业打卡 辅音咬舌音 [θ] [ð] Day29 2023.3.21 周二
  • 【原始者-综述】
  • C++内存模型
  • 八股+面经
  • MySQL更新数据流程
  • 测试开发进阶系列课程
  • Qt源码阅读(三) 对象树管理