牛客算法题——明明的随机数

1.题目

HJ3 明明的随机数

描述

明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。

数据范围:1≤n≤1000,输入的数字大小满足 1≤val≤500

输入描述:

第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数,代表明明生成的随机数。 具体格式可以参考下面的"示例"。

输出描述:

输出多行,表示输入数据处理后的结果

示例

输入:
	3
	2
	2
	1

输出:
	1
	2

说明:
	输入解释:
	第一个数字是3,也即这个小样例的N=3,说明用计算机生成了3个1到500之间的随机整数,接下来每行一个随机数字,共3行,也即这3个随机数字为:
	2
	2
	1
所以样例的输出为:
	1
	2    

2.解题思路

1.获取一个整数N,代表样本数量
2.根据样本数量循环获取样本内容,添加到列表中
3.利用set去重
4.利用sorted排序,然后遍历打印输出

3.代码实现

while True:
    try:
        
### 关于华为算法题目的解析 #### 字符串字符匹配 字符串字符匹配问题是常见的基础算法之一,通常涉及模式匹配、KMP算法等内容。在华为网的相关题目中,可以参考如下实现方式[^1]: ```python def str_match(s, pattern): m, n = len(s), len(pattern) i, j = 0, 0 while i < m and j < n: if s[i] == pattern[j]: j += 1 i += 1 return j == n ``` --- #### 将真分数分解为埃及分数 将真分数分解为埃及分数是一个经典的数学问题,在实际编程中可以通过贪心算法来解决。 ```python from fractions import Fraction def egyptian_fraction(fraction): result = [] f = Fraction(fraction).limit_denominator() numerator, denominator = f.numerator, f.denominator while numerator != 0: x = (denominator + numerator - 1) // numerator result.append(Fraction(1, x)) numerator, denominator = numerator * x - denominator, denominator * x return result ``` --- #### 统计大写字母个数 统计字符串中的大写字母数量属于简单的字符串处理问题,以下是其实现方法[^4]: ```python def count_uppercase(s): count = sum(1 for c in s if 'A' <= c <= 'Z') return count ``` --- #### 合法IP判断 对于合法IP地址的判断,需要考虑IPv4格式的有效性验证逻辑[^5]。 ```python def is_valid_ip(ip): parts = ip.split('.') if len(parts) != 4: return False for part in parts: if not part.isdigit() or not 0 <= int(part) <= 255: return False if len(part) > 1 and part.startswith('0'): return False return True ``` --- #### 密码强度等级 密码强度检测可以根据长度、复杂性和特殊字符的存在情况进行综合评分[^3]。 ```python import re def password_strength(password): score = 0 if len(password) >= 8: score += 1 if re.search(r'[a-z]', password): score += 1 if re.search(r'[A-Z]', password): score += 1 if re.search(r'\d', password): score += 1 if re.search(r'[!@#$%^&*(),.?":{}|<>]', password): score += 1 return score ``` --- #### 注意事项 在参加机考时需要注意代码的原创性,避免因代码相似度过高而被系统判定为作弊行为[^2]。因此,即使熟悉某些经典算法,也应尝试通过调整变量名、优化逻辑等方式降低相似度。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值