首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客456412390号
获赞
0
粉丝
0
关注
0
看过 TA
3
2025
算法工程师
IP属地:江苏
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑牛客456412390号吗?
发布(30)
评论
刷题
收藏
牛客456412390号
关注TA,不错过内容更新
关注
2024-11-11 11:43
已编辑
算法工程师
题解 | #HJ30 字符串合并处理#
方法1-巧用切片替换字符通过列表切片直接将排序后的字符放置到正确的位置。int(x, base=16):将16进制转成十进制bin(...)[2:].zfill(4)[::-1]:将十进制转成二进制,去除开头的'0b',前面补0至四位,然后再倒序。hex(..., base=2)[2:].upper():将二进制转成16进制,去除开头的'0x',最后再转成大写。 # 预先计算十六进制字符的转换表 hex_chars = '0123456789ABCDEFabcdef' hex_map = {x: hex(int(bin(int(x, 16))[2:].zfill(4)[::-1], 2))[2...
0
点赞
评论
收藏
分享
2024-10-22 11:45
算法工程师
题解 | #字符串加密#
思路:创建一个字典,将标准字母表映射到加密字母表写法1 def encrypt(key, s): alphas = ''.join([chr(ord('a')+i) for i in range(26)]) new_alphas = "" for c in key: if c not in new_alphas: new_alphas += c for c in alphas: if c not in new_alphas: new_alphas += c ...
【牛客站内】华为机试题解
0
点赞
评论
收藏
分享
2024-10-16 18:32
算法工程师
题解 | #HJ37 统计每个月兔子的总数#
方法1-递归 def f(n): if n == 1 or n == 2: return 1 return f(n-1) + f(n-2) while True: try: n = int(input()) print(f(n)) except: break # 最开始的分析思路: # 出生满2月的兔子后面每次会生育小兔子,即上上月及之前新增的兔子,每过一个月都要累加进去。 # f(1) = 1 # f(2) = 1 # f(3) = 2 # f(4) = 2+(1-0)=3 # f(5...
0
点赞
评论
收藏
分享
2024-10-15 12:50
已编辑
算法工程师
题解 | #蛇形矩阵#
方法1-通项公式通过数学推导求得通项公式。 def aij(i, j): return int((j-1)*(i+1) + (j-1)*(j-2)/2 * 1 + (i-1)*(i-2)/2) + i n = int(input()) for i in range(1, n + 1): for j in range(1, n - i + 2): print(aij(i, j), end=' ') print() 分析思路:观察可知,每一行是一个差成等差数列的二级等差数列假设差对应的等差数列为:dn = p + (n-1)*qa2 - a1 = pa3 ...
【牛客站内】华为机试题解
0
点赞
评论
收藏
分享
2024-10-14 13:28
已编辑
算法工程师
题解 | #HJ40 统计字符#
方法1-常规 s = input() # 初始化计数器 alpha, space, digit, other = 0, 0, 0, 0 # 遍历字符串,统计各类字符的个数 for char in s: if char.isalpha(): alpha += 1 elif char.isspace(): space += 1 elif char.isdigit(): digit += 1 else: other += 1 print(alpha) print(space) print(digit...
0
点赞
评论
收藏
分享
2024-10-14 12:17
已编辑
算法工程师
题解 | #HJ29 字符串加解密#
方法1-利用ASCII码表1.1 常规思路 def encrypt(s): li = list(s) for i in range(len(li)): if li[i].islower(): if ord(li[i]) < ord("z"): li[i] = chr(ord(li[i]) + 1).upper() else: li[i] = "A" elif li[i].isupper():...
【牛客站内】华为机试题解
0
点赞
评论
收藏
分享
2024-10-13 10:05
算法工程师
题解 | #图片整理#
方法1:使用内置sorted(默认按ASCII排序) print("".join(sorted(input()))) 方法2:冒泡排序 s = list(input()) for i in range(len(s)-1): for j in range(len(s)-i-1): if ord(s[j]) > ord(s[j+1]): s[j], s[j+1] = s[j+1], s[j] print(''.join(s))
【牛客站内】华为机试题解
0
点赞
评论
收藏
分享
2024-10-13 09:46
已编辑
算法工程师
题解 | #HJ31 单词倒排#
方法1 s = input() new_s = "" for i in s: if 97 <= ord(i.lower()) <= 122: new_s += i else: new_s += " " arr = new_s.split() print(" ".join(arr[::-1])) 方法2 a = input() for i in a: if not 97 <= ord(i.lower()) <= 122: a = a.rep...
【牛客站内】华为机试题解
0
点赞
评论
收藏
分享
2024-10-12 15:20
已编辑
算法工程师
题解 | #HJ27 查找兄弟单词#
方法1兄弟单词,不能完全一样,只允许顺序不一样。可以通过统计字母出现次数来判断。 def char_count(s): dic = {} for c in s: dic[c] = dic.get(c, 0) + 1 return dic s = input() li = s.split() n = int(li[0]) dic_words = li[1 : n + 1] x = li[n + 1] k = int(li[-1]) brother_words = [] for dic_word in dic_words: if char_co...
【牛客站内】华为机试题解
0
点赞
评论
收藏
分享
2024-10-10 14:47
已编辑
算法工程师
题解 | #H27 字符串排序#
方法1 while True: try: s = input() # 提取纯字母字符 a = "" for i in s: # 如果字符是字母,则添加到字符串a中 if i.isalpha(): a += i # 对每个字母应用str.upper方法,并根据返回的大写值来排序,返回排序后的字母列表。 # 由于str.upper会返回一个新的字符串,不会修改原始字符串,这样就能保留原始字符串的...
【牛客站内】华为机试题解
0
点赞
评论
收藏
分享
2024-10-06 16:02
已编辑
算法工程师
题解 | #H25 数据分类处理#
方法1-使用列表构建输出 s1 = input().split()[1:] s2 = list(map(str, sorted(set(map(int, input().split()[1:]))))) ret = [] for num in s2: tmp = [] for i, sub in enumerate(s1): if num in sub: tmp.extend([str(i), sub]) if tmp: ret.extend([num, str(len(tmp) // 2)] + tmp) pri...
【牛客站内】华为机试题解
0
点赞
评论
收藏
分享
2024-10-02 20:49
已编辑
算法工程师
题解 | #HJ23 删除字符串中出现次数最少的字符#
方法1 while True: try: s = input() dic = {} for c in s: dic[c] = dic.get(c, 0) + 1 min_freq = min(dic.values()) res = "".join([c for c in s if dic[c] != min_freq]) print(res) except: break 方法2 import sys def remove...
【牛客站内】华为机试题解
0
点赞
评论
收藏
分享
2024-10-02 09:28
已编辑
算法工程师
题解 | #HJ22 汽水瓶#
方法1-循环演示:10个空瓶换到5个瓶汽水的过程 第1轮:10个空瓶可以换到3瓶汽水,剩余1个瓶子数再加上喝完后的3个空瓶,一共4个空瓶。 total = 10//3 = 3 bottle = 10//3 + 10%3 = 4 第2轮:4个空瓶可以换到1瓶汽水,剩余1个瓶子数再加上喝完后的1个空瓶,一共2个空瓶。 total = total + 4//3 = 4 bottle = 4//3 + 4%3 = 2 第3轮:剩余2个瓶子,向老板借1个空瓶,能换到1瓶汽水,空瓶要归还,所以剩下0个空瓶。 total = total + 1 = 5 bottle = 1 - 1 = 0 while ...
【牛客站内】华为机试题解
0
点赞
评论
收藏
分享
2024-09-29 10:28
算法工程师
题解 | #HJ21 简单密码#
解法1-条件判断这题思路非常清晰,最直接的方式就是通过条件判断来转换每个字符。 def char_to_num(char): if char == 'Z': return 'a' if char.isupper(): char = chr(ord(char.lower()) + 1) return char if char in 'abc': return '2' elif char in 'def': return '3' elif char in 'ghi': return '4' elif c...
0
点赞
评论
收藏
分享
2024-09-26 12:08
算法工程师
题解 | #HJ20 密码验证合格程序#
import sys lower_letter = "".join([chr(ord("a") + i) for i in range(26)]) upper_letter = "".join([chr(ord("A") + i) for i in range(26)]) num_string = "0123456789" def verify_pwd(pwd): pwd = pwd.strip() # 校验规则1 if len(pwd) < 8: ...
0
点赞
评论
收藏
分享
1
2
创作者周榜
更多
关注他的用户也关注了:
牛客网
牛客企业服务