牛客网-华为机试题(python)
文章目录
- 水题
- HJ5(进制转换)
- HJ6(质数-质因子,超时)!
- HJ15(进制转换、str.count)
- HJ22(模拟)
- HJ37(递推、EOF多组输入)
- HJ56(杨辉三角)
- HJ83(模拟)
- HJ100(等差数列)
- HJ108(最小公倍数)
- 字符串
- HJ7(str.split)
- HJ9(去重,set改为有序)
- HJ10(去重)
- HJ11(str逆序)
- HJ12(str逆序)
- HJ74(间隔,逐字符)
- HJ87(判断数字/大小写/字符)
- HJ106(str逆序)
- 链表
- HJ48(单链表)
- 栈
- HJ50(中缀表达式求值)
- HJ54(中缀表达式)
- 队列
- 哈希
- HJ8(哈希,dict排序)
- 排序
- HJ14(字典序,list排序)
- 其它
- HJ85(回文)
- HJ86(最大连续个数、进制转换)
- (最长公共子串)
- (最长公共子序列)
- HJ103(最长上升子序列)
水题
HJ5(进制转换)
def fun(s):n = 0for x in s:if x.isdigit():n = n*16 + int(x)else:n = n*16 + 10 + ord(x)-ord('A')return nwhile True:try:s = input()s = s.replace('0x','')n = fun(s)print(n)except:break
HJ6(质数-质因子,超时)!
n = int(input())
li = []
for i in range(2, int(n**0.5)+1): # n//2+1while n % i == 0: # 重复的质因子li.append(str(i))n = int(n/i)
if li == []:li = [str(n)]
print(' '.join(li) + ' ')
HJ15(进制转换、str.count)
s = input()
x = int(s)
s2 = ''
while(x!=0):s2 += str(x%2)x = int(x/2)
print(s2.count('1'))
HJ22(模拟)
def fun(n):cnt = 0;while n>=2:n = n-3cnt += 1n += 1return cnt;s = input()
n = int(s)
while n!=0:print(fun(n)) s = input()n = int(s)
HJ37(递推、EOF多组输入)
关键:找准递推式
f(n) = f(n-1)+f(n-2) ,n>=3
f(n) = f(n-1),n<3
- n:第n个月,n = 1,2,3…
- f(n):第n个月的兔子数
- f(n-1):上个月(没有生育)的兔子数。f(n-2):上上(有生育)的兔子数(出生三个月后会生一只)。
如果 递归调用 超内存,可改写为 循环。
def rabbit_num(n):if n < 3:return 1return rabbit_num(n-1) + rabbit_num(n-2)while True:try:s = input()n = int(s)print(rabbit_num(n))except:break
HJ56(杨辉三角)
HJ83(模拟)
while True:try:s = input()if len(s) > 0:li = s.split(' ')m = int(li[0])n = int(li[1])if (m <= 9 and m >=1) and (n <= 9 and n >=1):print(0)else:print(-1)#s = input()li = s.split(' ')x1 = int(li[0])y1 = int(li[1])x2 = int(li[2])y2 = int(li[3])if (x1 <= m-1 and x1 >=0) and (y1 <= n-1 and y1 >=0) and (x2 <= m-1 and x2 >=0) and (y2 <= n-1 and y2 >=0):print(0)else:print(-1)#s = input()x = int(s)if (x <= m-1 and x >= 0) and (m+1<=9):print(0)else:print(-1)#s = input()y = int(s)if (y <= n - 1 and y >= 0) and (n+1 <= 9):print(0)else:print(-1)# s = input()li = s.split(' ')x1 = int(li[0])y1 = int(li[1])if (x1 <= m - 1 and x1 >= 0) and (y1 <= n - 1 and y1 >= 0):print(0)else:print(-1)except:break
HJ100(等差数列)
while True:try:s = input()n = int(s)cnt = 0for i in range(n):x = 2+3*icnt += xprint(cnt)except:break
HJ108(最小公倍数)
def fun(a,b):while b!=0:r = a%ba = bb = rreturn as = input()
li = s.split(' ')
a = int(li[0])
b = int(li[1])
p = fun(a,b)
print(int(a/p*b))
字符串
HJ7(str.split)
s = input()
li = s.split('.')
x = int(li[1][0])
if x>=5:print(int(float(s))+1)
else:print(int(float(s)))
HJ9(去重,set改为有序)
s = input()
s = s[::-1]
st = set(s)
li = sorted(st, key=s.index)
print(''.join(li))
HJ10(去重)
st = set()
while True:try:s = input()for x in s:if ord(x)>=0 and ord(x)<=127:st.add(x)except:break
print(len(st))
HJ11(str逆序)
s = input()
print(s[::-1])
HJ12(str逆序)
s = input()
print(s[::-1])
HJ74(间隔,逐字符)
while True:try:s = input()if len(s) > 0:li = []temp = ''num = 0 # 引号个数for x in s:if x == ' ':if num == 0:if (len(temp) > 0):li.append(temp)temp = ''else:temp += xelif x == '"':if num == 0 or num == 1:num += 1if num == 2:if (len(temp) > 0):li.append(temp)temp = ''num = 0else:temp += xif len(temp)>0:li.append(temp)print(len(li))for x in li:print(x)except:break
HJ87(判断数字/大小写/字符)
def get_len(s, score):if len(s) <= 4:score += 5elif len(s) <= 7:score += 10else:score += 25return scoredef fun(s, score):dig = 0up = 0low = 0other = 0for x in s:if x.isupper():up += 1elif x.islower():low += 1elif x.isdigit():dig += 1else:other += 1# 字母if up==0 and low==0:score += 0else:if up>0 and low>0:score += 20else:score += 10# 数字if dig == 1:score += 10elif dig > 1:score += 20# 符号if other == 1:score += 10elif other > 1:score += 25# 奖励if dig>0 and other>0:if up>0 and low>0:score += 5else:score += 3elif dig>0 and (up>0 or low>0):score += 2return scorewhile True:try:score = 0s = input()score = get_len(s, score)score = fun(s, score)if score >= 90:print('VERY_SECURE')elif score >= 80:print('SECURE')elif score >= 70:print('VERY_STRONG')elif score >= 60:print('STRONG')elif score >= 50:print('AVERAGE')elif score >= 25:print('WEAK')else:print('VERY_WEAK')except:break
HJ106(str逆序)
s = input()
print(s[::-1])
链表
HJ48(单链表)
# 结点
class Node():def __init__(self, data):self.data = dataself.next = None # = Node()# 链表
class Link():def __init__(self):self.head = None # = Node()def insert(self, a, b):# a 插到 b 后node = Node(a)p = self.headwhile p is not None:if p.data == b:breakp = p.nextif p is not None:q = p.nextp.next = nodenode.next = qdef visit(self):li = []p = self.headwhile p is not None:li.append(p.data)p = p.nextreturn lidef delete(self, data):p = self.headif p.data == data:self.head = p.nextreturnelse:q = pp = p.nextwhile p is not None:if p.data == data:q.next = p.nextreturnp = p.nextq = q.nexts = input()
li = s.split( )
# n = int(li[0])
f = li[1]
obj = li[-1]
# 创建,插入
link = Link()
link.head = Node(f)
for i in range(2,len(li)-1,2):a = li[i]b = li[i+1]link.insert(a, b)
# 删除
link.delete(obj)
# 打印
li = link.visit()
if li == []:print('null')
else:print(' '.join(li) + ' ')
栈
HJ50(中缀表达式求值)
s = input()
s = s.replace('[', '(')
s = s.replace(']', ')')
s = s.replace('{', '(')
s = s.replace('}', ')')
x = eval(s)
if x == int(x):print(int(x))
else:print(x)
HJ54(中缀表达式)
s = input()
print(eval(s))
队列
哈希
HJ8(哈希,dict排序)
t = int(input())
d = {}
for i in range(t):s = input()li = s.split(' ')k = int(li[0])v = int(li[1])if k in d.keys():d[k] += velse:d[k] = v
li = sorted(d.items(), key=lambda x: x[0])
for x in li:print(str(x[0])+' '+str(x[1]))
排序
HJ14(字典序,list排序)
n = int(input())
li = []
for i in range(n):s = input()li.append(s)
li.sort()
for x in li:print(x)
其它
HJ85(回文)
while True:try:s = input()if len(s) > 0:s2 = s[::-1]cnt = 0max_cnt = 0for i in range(len(s)):if s[i] == s2[i]:cnt += 1else:max_cnt = max(max_cnt, cnt)cnt = 0max_cnt = max(max_cnt, cnt)print(max_cnt)except:break
HJ86(最大连续个数、进制转换)
# 转为二进制
def change(n):li = []while n!=0:li.append(n%2)n = int(n/2)return li[::-1]while True:try:n = int(input())li = change(n) # 二进制cnt = 0max_cnt = 0for x in li:if x == 1:cnt += 1else:max_cnt = max(max_cnt, cnt)cnt=0max_cnt = max(max_cnt, cnt)print(max_cnt)except:break
(最长公共子串)
(最长公共子序列)
HJ103(最长上升子序列)
牛客网-华为机试题(python)相关推荐
- 华为机试python编程题_牛客网华为机试题之Python解法
牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...
- 牛客网华为机试题(JavaScript)
最近在牛客网刷华为机试题,遇到了很多坑,记录: 每一道题目都经过自己实践验证 华为机试题 牛客网在javascript V8引擎下处理输入输出如下: 利用了readline()接收输入的每一行,多行处 ...
- C++实现_数据分类处理(牛客网华为机试题)
目录: 题目描述 输入描述: 输出描述: 示例: 题意理解 C++代码: 参考文章: 题目描述 信息社会,有海量的数据需要分析处理,比如公安局分析身份证号码. QQ 用户.手机号码.银行帐号等信息及活 ...
- 【牛客网-华为机试题目录】持续更新中
文章目录 博主精品专栏导航 华为机试题:HJ80 整型数组合并(python) 华为机试题:HJ76 尼科彻斯定理(python) 华为机试题:HJ73 计算日期到天数转换(python) 华为机试题 ...
- 牛客网 华为机试题 数据重复的筛选问题记录
题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数. 保证输入的整数最后一位不是0. 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺序,返回一个 ...
- 牛客网华为机试题 字符串问题 记录
一.题目描述 写出一个程序,接受一个由字母.数字和空格组成的字符串,和一个字母,然后输出输入字符串中该字母的出现次数.不区分大小写. 输入描述: 第一行输入一个由字母和数字以及空格组成的字符串,第二行 ...
- (牛客网)华为机试(二)
(牛客网)华为机试题集解答 在解题前先分享一波oj刷题的固定格式代码,方便输入时使用 import java.util.*; import java.io.*; public class Main{ ...
- 牛客网华为机试(python)
前言 牛客网华为机试(https://www.nowcoder.com/exam/oj/ta?tpId=37) 按难度分为入门,简单,中等,困难,较难五个等级 目录标题 前言 一,入门 二,简单 一, ...
- 「解析」牛客网-华为机考企业真题 1-20
又是一年春招时,有幸收到华为自动驾驶算法岗,之前刷题不多,在此汇总下牛客网的真题,主要采用Python编写,个人觉得语言只是实现工具而已,并不是很关键,Python简洁易懂,更加适合算法工程师快速验证 ...
- 「解析」牛客网-华为机考企业真题 41-60
又是一年春招时,有幸收到华为自动驾驶算法岗,之前刷题不多,在此汇总下牛客网的真题,主要采用Python编写,个人觉得语言只是实现工具而已,并不是很关键,Python简洁易懂,更加适合算法工程师快速验证 ...
最新文章
- Obj-C的hello,world 2
- 数学建模学习笔记——多元回归
- AXI3和AXI4协议详细说明
- 使用git pull文件时和本地文件冲突怎么办?
- 发布支持多线程的PowerShell模块 —— MultiThreadTaskRunner
- Makefile中三个自动变量$^,$@,$
- cacti监控java,Cacti监控tomcat的方法
- GroovyHelp方便查看java api
- Java IO1:IO和File
- Pyserial库使用心得
- 【Java实习生】每日10道面试题打卡!
- 解决使用CSDN下载东西时,点击直接下载没有反应的问题
- 缓存穿透、击穿、雪崩什么的分不清楚?看了这篇文章后,我明白了
- java 接口 protected_为什么类和接口不能使用private和protected?接口的方法不能使用private、protected、default...
- android 微信公众号开发教程,微信公众号-开发者-自定义菜单,公众开发者
- 2007我的找工作之旅 - 洛丽塔之痒 - 洛丽塔之痒 - 和讯博客
- Python爬取wallhaven壁纸 2023.1.31
- 计算机windows错误恢复,Win7系统出现Windows错误恢复该怎么办?
- thinkphp6-----微信授权登录
- (转)量子位:这个AI股神把顶级对冲基金吓尿了
热门文章
- 简单调整配置深度Linux-15迅速开始学习工作
- 微信服务号/企业号防止AccessToken过期的操作指南深入浅出
- 当迷茫在大学里泛滥成灾——李开复
- linux本地光盘yum
- getElementsByName和getElementByID
- 机器学习模型融合stack详解及代码实战
- thinkphp 一个文件怎么调用另一个文件中的define()_ThinkPHP 简易开发思路 amp;amp; MVC和URL跳转...
- origin函数绘图_资料|史上最全10套Origin科研必备绘图教学,无需代码
- 3 超链接_excel函数应用技巧:超链接函数HYPERLINK
- 微服务链路追踪_微服务的战争:选型?分布式链路追踪