人民币 人民hj 95

202306-人民当家作组 实验三: 软件项目案例分析 (团队作业)

| 项目 | 内容 | | | | |课程班级博客链接 |2020级卓越工程师班| | 这个作业要求链接 |实验三 软件项目案例分析 | |团队名称|人民当家作组| |团队的课程学习目标|(1)掌握现有软件案例分析方法(2)了解软件的功能特点、优缺点以及用户体验 |这个作业在哪些方面帮助团队实现学习 ......
案例分析 团队 案例 项目 202306

UESTC__ACM 1264 人民币的构造

链接地址:https://acm.uestc.edu.cn/contest/198/problem/J 我们都知道人民币的面值是1、2、5、10,为什么是这个数值呢,我们分析了下发现,从1~10的每个数字都可以由每种面值选出至多一张通过加法和减法(找钱)来构成,(比如:1+2=3,5−1=4,5+1 ......
人民币 人民 UESTC 1264 ACM

HJ45_名字的漂亮度_贪心(字符串字符次数排序)_附:字典排序

思路: 每个字母都有一个漂亮度1-26。每个字母漂亮度不相同忽略大小写,字符串漂亮度是字母漂亮度总和。取次数最多的字符漂亮度最大,其他依次次大。 #贪心。先排序从大到小,后计算整体漂亮度。从局部最优到整体最优,为贪心算法。 代码: 1 from collections import Counter ......
字符 字符串 亮度 字典 次数

HJ50_四则运算_eval()

用Python内置函数eval() 1 import sys 2 a=sys.stdin.readline().strip() 3 a=a.replace("{","(") 4 a=a.replace("}",")") 5 a=a.replace("[","(") 6 a=a.replace("]" ......
四则 eval HJ 50

HJ52_计算字符串的编辑距离_动态规划_动态规划可视化

思路: 该题目符合最优解拥有最优子解,符合动态规划算法要求. 2 思路:操作方法有3种,替换、插入、删除。把a字符串编辑成b字符串的距离。 3 假设空字符串开始编辑作为bottom 边界。 4 a字符串作为深度,b作为宽度。 5 沿宽度遍历为add,沿深度遍历为delete,斜角为change 6 ......
动态 字符串 字符 HJ 52

人民当家作组 实验二:软件研发团队组建(团队作业)

| 项目 | 内容 | | | | | 课程班级博客链接 | 2020级卓越工程师班 | |这个作业要求链接|实验二 软件研发团队组建| |团队名称|人民当家作组| |团队的课程学习目标|(1)组建项目研发团队(2)形成团队合作意识,提高协作能力(3)熟悉软件开发所需的各项工作和流程| |这个作业在 ......
团队 人民 软件

HJ67_24点游戏算法_多维递归_DFS(深度优先搜索)

思路: 多维递归,深度有限遍历加减乘除四种情况。 知识点: 1、多维递归不能对传递的变量进行修改,否则无法回溯。 应该传递一个新地址的变量,如代码所示,传递切片的列表,不修改列表 2、搜索遗漏。两括号比如((9-4)-1)*6 选取任意一个数作为第一个运算数与24运算,不能找出所有24点的计算方法。 ......
算法 深度 DFS HJ 67

HJ71_字符串通配符_多维递归

思路:1、对比字符最后一个,对比字符倒数第二个,一致对比到最后一个,如此递归。 2、该题符合多维递归,回溯判断。 遇到“*”通配符时,列举三种不同参数传递的递归情况,分叉递归以达到穷举的效果。(回溯) 3、结束条件:两字符串均为空,不计算“*”字符 具体,如代码所示。 #*只能匹配数字或字母0个或无 ......
通配符 字符串 字符 HJ 71

HJ77_火车进站_栈_递归_递归可视化

思路: 多维递归模拟进站出站,递归回溯,使用全局变量收集结果,最后输出结果。 语言知识: 1、关于参数传入和可变变量修改 2、错误使用return 3、进出站不同跟踪方法。cursor只是表示等待进站火车下标。 递归可视化: 程序: 1 import sys 2 a=sys.stdin.readli ......
火车 HJ 77

HJ74_参数解析_转义字符“”_split()与split(“ ”)

细节注意:0、字符串的count()方法可计算字符个数,如 1、split()方法,以空格划分区别,如下图: 代码如下 1 import sys 2 a = sys.stdin.readline().strip() 3 a1="" 4 f=0 5 for i in a:#在第一个“前加入一个空格,在 ......
转义 split 字符 参数 HJ

HJ92_在字符串中找出连续最长的数字串_技巧

思路:按照模拟思路,没有技巧地,代码如2。 新思路:把非数字转换成空格,使用空格作为标记切片。 !!! 注意:字符串变更,要用replace()方法生成新字符串!!! 参考高赞答案,重写代码如1: 1 import sys 2 a=[] 3 for line in sys.stdin: 4 a.ap ......
字符串 字符 数字 技巧 HJ

HJ82_将真分数分解为埃及分数_数学

参考高赞答案思路: 将真分数分子、分母分别x2。目的使循环:分母除分子余数为0存在。 1 import sys 2 a=[] 3 for line in sys.stdin: 4 a.append(line.strip().split("/")) 5 for i in a: 6 l=[] 7 a=i ......
真分数 分数 数学 HJ 82

HJ103 Redraiment的走法(梅花桩递增可走的最多步数)_排序_动态规划

思路: 该题目符合,最优结果拥有最优子结果的特征。考虑用动态规划。通过循环获取每个参数作为最后一个桩的最优子结果,后面桩的结果为前一个桩的最优子结果+1。如梅花桩“2 5 1 5 4 5”。参考高赞答案,代码如下 1 import sys 2 a=int(sys.stdin.readline().s ......
梅花桩 步数 走法 梅花 Redraiment

HJ64_MP3光标位置_数组_模拟思路_滑动窗口

思路:用模拟跟踪U、D 得输出的歌曲,用双指针跟踪歌曲当前窗口。 注意,在第一首向上滑动,和最后一首向下滑是,窗口特殊跳动,此时双指针指向特殊处理。 留意到,不管是特殊情况还是普通情况,指针上划时歌曲减一。如1调到10,10上划为9,视为减一。 得到代码如下: import sys a = int( ......
光标 数组 思路 位置 MP3

HJ19_简单错误记录_哈希

思路: 要实现字符串的分隔和按输入顺序输出,所以使用列表。两列表实现。 知识点: 1、python的可哈希不可哈希对象 详见:详解Python中的可哈希对象与不可哈希对象(二) - 腾讯云开发者社区-腾讯云 (tencent.com) 2、斜杆的“\”字符的读取与分隔“\\” 用split()方法分 ......
错误 HJ 19

HJ212

污染物在线自动监控(监测)系统数据传输标准 (HJ212-2017)-CRC数据校验 - Liu Siyuan - 博客园 (cnblogs.com) HJ212 CRC 16 (C#) - VictorBu - 博客园 (cnblogs.com) ......
212 HJ

HJ82_将真分数分解为埃及分数_数学

原文连接:(7条消息) 将真分数分解为埃及分数_且_听_风_吟的博客-CSDN博客 1 a,b = 8,11 2 a = a * 10 3 b = b * 10 4 res = [] 5 while a: 6 for i in range(a,0,-1): 7 print(i,b) 8 if(b % ......
真分数 分数 数学 HJ 82

HJ70_矩阵乘法计算量估算_入门栈使用的典型题

反思: 这题咋一看不难,但是越做坑越多,按照一开始不完善的思路无法完全通过测试。 参看高赞答案,代码行数特少。但是没考虑一个括号中有三个矩阵的情况。 思路: 1、判断哪两个矩阵开始相乘的条件:遇到“)”时,该字符前两个矩阵开始相乘。把相乘后矩阵行列数组压入栈栈中。该题默认不存在(A(BCD))一个括 ......
乘法 矩阵 典型 HJ 70

HJ69_矩阵乘法_数组

思路: 三层循环实现矩阵相乘。 import sys a=[] for line in sys.stdin: a.append(list(map(int,line.strip().split()))) #print(a) matrix1=a[3:3+a[0][0]] matrix2=a[3+a[0] ......
乘法 数组 矩阵 HJ 69

HJ66 配置文件恢复_字典_字符串

思路:1、把命令和执行对录入一字串字典和二字串字典 2、取字典的可以与输入对比 3、为了保证唯一性,用c常数增加1来判断是否唯一。 4、最后根据c值统一打印输出 1 import sys 2 a=[] 3 for line in sys.stdin: 4 a.append(line.strip(). ......
字符串 字典 字符 文件 HJ

HJ65 查找两个字符串a,b中的最长公共子串_穷举查找字符串相同子串

思路:1、穷举查找字符串子串 2、把相同子串存入数组 3、生成新数组存储对应index的子串长度 4、返回第一个最长数组index,通过index查找子串输出。 1 import sys 2 s1=sys.stdin.readline().strip() 3 s2=sys.stdin.readlin ......
字符串 字符 两个 HJ 65

HJ48_从单向链表中删除指定值的节点_单向链表

自定义类型链表:用链表的方式实现链表的生成、插入和删除。 思路:需要两个class,一个为node,用与生成节点,一个为linklist,用于定义节点操作以及初始化head头节点。 因为单向链表每个节点只有一个指针,因此在执行删除操作时,需要两指针并行。 head头节点作为特殊情况需要另一个if捕捉 ......
单向 节点 HJ 48

HJ20_密码验证合格程序_仿真_判断重复子串的巧妙

这题最巧的是如何判断密码含有字符串。 最巧妙的是如何判断一串字符串中是否包含重复子串: 思路:for 循环提取可能的重复子串,通过子串作为划分字符串的依据,判断划分后的字符串是否长度大于等于3,则可判断字符串中是否含有两个或两个以上重复子串。简短两行,要注意index不能超出数组。 16 for i ......
密码 程序 HJ 20

HJ41_称砝码_动态规划_双层循环的内层循环对象同时更新(巧妙)

思路:陈砝码也就是砝码有多少种组合方式。1.用穷举方法,但是操作量大,且同一重量可以有多重不同砝码称取方式。2.用确定砝码称取范围(0,max_weight),并逆推组合是否成立的方式,可减少计算量。这个方法还不知如何实现。如实现方式为每次取最接近重量的砝码,砝码有2g两个,3g一个,称重4g.计算 ......
内层 砝码 双层 对象 同时

HJ38求小球落地5次后经历路程和第五次反弹高度

思路:已知反弹高度为下落高度的一半。采用模拟的方法。这题比较简单不知道为什么放在中等难度。 1 a=float(input()) 2 n=a 3 sum=0 4 def spring_h(a): 5 return a/2 6 for i in range(5): 7 sum=sum+n*2 8 n= ......
小球 路程 高度 HJ 38

HJ36_字符串加密_模拟

思路:模拟仿真的方法,最重要要是理解秘钥、明文、密文代表什么,以及如何通过查表加密。 通过建立明文、密文对应列表。得到明文index后,由相同的index得到加密信息。 #题目涉及秘钥、明文、密文。通过指定秘钥和明文得到密文#如 #秘钥:TRAILBLAZERS#明文:A B C D E F G H ......
字符串 字符 HJ 36

HJ_33 整数与IP地址间的转换_模拟

思路:模拟分析 知识点: 1、10进制与二进制互相转换 2、字符串切片 代码行数不算多,但依然有简化空间。参考高赞题解的思路,得到代码2。 #采用内置函数int(x,base)把任何进制转换成10进制#bin(x) 把int,十进制整型转换成二进制。 1 ip=list(map(int,input( ......
整数 地址 HJ 33

HJ32_密码截取_模拟_动态规划

思路:通过for循环获得可能是对称字符串的中间数,通过左右跳动寻找对称字符串,如果是则放进l列表中。 该思路通过模拟分析三种情况,分别用三个独立if,分别判断的方法,来实现对称密码截取。 后看高赞题解,发现其代码只有8行。尝试分析高手思路,其思路为,1、找到通过循环找到两个相同字符。2、通过两个相同 ......
密码 动态 HJ 32

HJ29_字符串加解密_模拟

思路: 根据加解密规则,使字符串加解密后输出。这是初始理解,编码起来较麻烦。查看高赞题解后,学到一种新思路关于加解密:最佳方法是通过通过设计加解密表,代码比较简单,通过列表index实现加解密。 这是我的代码: 1 f_encrypt=input() 2 f_decipher=input() 3 o ......
字符串 字符 HJ 29

HJ27_查找兄弟单词——哈希表查找

思路: #先找出兄弟单词,按字典排序;输出第k个字典序单词,若没有则不用输出。 关键是理解题目兄弟单词的定义。可通过测试案例明确兄弟单词单词定义。如刚开始我的check,只是用set()检查是否含有相同字母;再增加用len()检查重复字母,再发现用哈希表计算不同字母出现次数,并对比哈希表。最后得出程 ......
单词 兄弟 HJ 27