文章目录

  • 水题
    • 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)相关推荐

  1. 华为机试python编程题_牛客网华为机试题之Python解法

    牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...

  2. 牛客网华为机试题(JavaScript)

    最近在牛客网刷华为机试题,遇到了很多坑,记录: 每一道题目都经过自己实践验证 华为机试题 牛客网在javascript V8引擎下处理输入输出如下: 利用了readline()接收输入的每一行,多行处 ...

  3. C++实现_数据分类处理(牛客网华为机试题)

    目录: 题目描述 输入描述: 输出描述: 示例: 题意理解 C++代码: 参考文章: 题目描述 信息社会,有海量的数据需要分析处理,比如公安局分析身份证号码. QQ 用户.手机号码.银行帐号等信息及活 ...

  4. 【牛客网-华为机试题目录】持续更新中

    文章目录 博主精品专栏导航 华为机试题:HJ80 整型数组合并(python) 华为机试题:HJ76 尼科彻斯定理(python) 华为机试题:HJ73 计算日期到天数转换(python) 华为机试题 ...

  5. 牛客网 华为机试题 数据重复的筛选问题记录

    题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数. 保证输入的整数最后一位不是0. 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺序,返回一个 ...

  6. 牛客网华为机试题 字符串问题 记录

    一.题目描述 写出一个程序,接受一个由字母.数字和空格组成的字符串,和一个字母,然后输出输入字符串中该字母的出现次数.不区分大小写. 输入描述: 第一行输入一个由字母和数字以及空格组成的字符串,第二行 ...

  7. (牛客网)华为机试(二)

    (牛客网)华为机试题集解答 在解题前先分享一波oj刷题的固定格式代码,方便输入时使用 import java.util.*; import java.io.*; public class Main{ ...

  8. 牛客网华为机试(python)

    前言 牛客网华为机试(https://www.nowcoder.com/exam/oj/ta?tpId=37) 按难度分为入门,简单,中等,困难,较难五个等级 目录标题 前言 一,入门 二,简单 一, ...

  9. 「解析」牛客网-华为机考企业真题 1-20

    又是一年春招时,有幸收到华为自动驾驶算法岗,之前刷题不多,在此汇总下牛客网的真题,主要采用Python编写,个人觉得语言只是实现工具而已,并不是很关键,Python简洁易懂,更加适合算法工程师快速验证 ...

  10. 「解析」牛客网-华为机考企业真题 41-60

    又是一年春招时,有幸收到华为自动驾驶算法岗,之前刷题不多,在此汇总下牛客网的真题,主要采用Python编写,个人觉得语言只是实现工具而已,并不是很关键,Python简洁易懂,更加适合算法工程师快速验证 ...

最新文章

  1. Obj-C的hello,world 2
  2. 数学建模学习笔记——多元回归
  3. AXI3和AXI4协议详细说明
  4. 使用git pull文件时和本地文件冲突怎么办?
  5. 发布支持多线程的PowerShell模块 —— MultiThreadTaskRunner
  6. Makefile中三个自动变量$^,$@,$
  7. cacti监控java,Cacti监控tomcat的方法
  8. GroovyHelp方便查看java api
  9. Java IO1:IO和File
  10. Pyserial库使用心得
  11. 【Java实习生】每日10道面试题打卡!
  12. 解决使用CSDN下载东西时,点击直接下载没有反应的问题
  13. 缓存穿透、击穿、雪崩什么的分不清楚?看了这篇文章后,我明白了
  14. java 接口 protected_为什么类和接口不能使用private和protected?接口的方法不能使用private、protected、default...
  15. android 微信公众号开发教程,微信公众号-开发者-自定义菜单,公众开发者
  16. 2007我的找工作之旅 - 洛丽塔之痒 - 洛丽塔之痒 - 和讯博客
  17. Python爬取wallhaven壁纸 2023.1.31
  18. 计算机windows错误恢复,Win7系统出现Windows错误恢复该怎么办?
  19. thinkphp6-----微信授权登录
  20. (转)量子位:这个AI股神把顶级对冲基金吓尿了

热门文章

  1. 简单调整配置深度Linux-15迅速开始学习工作
  2. 微信服务号/企业号防止AccessToken过期的操作指南深入浅出
  3. 当迷茫在大学里泛滥成灾——李开复
  4. linux本地光盘yum
  5. getElementsByName和getElementByID
  6. 机器学习模型融合stack详解及代码实战
  7. thinkphp 一个文件怎么调用另一个文件中的define()_ThinkPHP 简易开发思路 amp;amp; MVC和URL跳转...
  8. origin函数绘图_资料|史上最全10套Origin科研必备绘图教学,无需代码
  9. 3 超链接_excel函数应用技巧:超链接函数HYPERLINK
  10. 微服务链路追踪_微服务的战争:选型?分布式链路追踪