当前位置: 首页 > news >正文

平顶山公司做网站seo关键词优化系统

平顶山公司做网站,seo关键词优化系统,重庆市建设和交通委员会网站,永安市建设局网站又是一年春招时,有幸收到华为自动驾驶算法岗,之前刷题不多,在此汇总下牛客网的真题,主要采用Python编写,个人觉得语言只是实现工具而已,并不是很关键,Python简洁易懂,更加适合算法工…

又是一年春招时,有幸收到华为自动驾驶算法岗,之前刷题不多,在此汇总下牛客网的真题,主要采用Python编写,个人觉得语言只是实现工具而已,并不是很关键,Python简洁易懂,更加适合算法工程师快速验证idear,避免重复造轮子的繁琐,希望对看合集的你有些许帮助!

  1. 「解析」牛客网-华为机考企业真题 1-20
  2. 「解析」牛客网-华为机考企业真题 21-40
  3. 「解析」牛客网-华为机考企业真题 41-60
  4. 「解析」牛客网-华为机考企业真题 61-80
  5. 「解析」牛客网-华为机考企业真题 81-108

文章目录

  • HJ41 称砝码
  • ★★★ HJ42 学英语
  • HJ43 迷宫问题
  • ★★★ HJ44 Sudoku
  • HJ45 名字的漂亮度
  • HJ46 截取字符串
  • HJ48 从单向链表中删除指定值的节点
  • HJ50 四则运算
  • HJ51 输出单向链表中倒数第k个结点
  • HJ52 计算字符串的编辑距离
  • HJ53 杨辉三角的变形
  • HJ54 表达式求值
  • HJ55 挑7
  • HJ56 完全数计算
  • HJ57 高精度整数加法
  • HJ58 输入n个整数,输出其中最小的k个
  • HJ59 找出字符串中第一个只出现一次的字符
  • HJ60 查找组成一个偶数最接近的两个素数

HJ41 称砝码

在这里插入图片描述
每次加一块砝码,得到所有组合,使用set去重。这是一种思路,我看很大一部分同学都是使用n种不同砝码进行组合,那样的话时间复杂度稍微低一点,实际看个人觉得哪种方式更好理解。

while True:try:n = int(input())m = input().split(" ")x = input().split(" ")# mx为所有砝码,比如示例mx为[1, 1, 2]mx, l = [], {0}for i in range(n):mx.extend([int(m[i])] * int(x[i]))for i in mx:# 每次加一块砝码,使用union(并集)得到新去重的组合,如果不使用union则稍微麻烦一点,需要考虑循环中改变setl = l.union({i+j for j in l})print(len(l))except:break

★★★ HJ42 学英语

在这里插入图片描述

num1 = ['zero','one','two','three','four','five','six','seven','eight','nine','ten','eleven','twelve','thirteen','fourteen','fifteen','sixteen','seventeen','eighteen','nineteen']
num2 = [0,0,'twenty','thirty','forty','fifty','sixty','seventy','eighty','ninety']# 100以内转英文
def n2w(n):if n > 0:if n < 20:word.append(num1[n])else:word.append(num2[n//10])if n%10 != 0:word.append(num1[n%10])# 1000以内转英文
def hun(n):if n >= 100:word.append(num1[n//100])word.append('hundred')if n % 100 != 0:word.append('and')n2w(n%100)while True:try:n = int(input())except:breakelse:word = []a = n % 1000  # 个十百位b = (n//1000) % 1000  # 个十百千c = (n//1000000) % 1000  #个十百md = n // 1000000000    # 个十百bif d > 0:hun(d)word.append('billion')if c > 0 :hun(c)word.append('million')if b > 0:hun(b)word.append('thousand')if a > 0 :hun(a)print(' '.join(word))

HJ43 迷宫问题

在这里插入图片描述
在这里插入图片描述

while True:try:m, n = list(map(int, input().split()))maze = []for _  in range(m):maze.append(list(map(int, input().split())))def walk(i, j, pos=[(0, 0)]):if j+1 < n and maze[i][j+1] == 0: # 向右if (i, j+1) not in pos:walk(i, j+1, pos + [(i, j+1)])if j-1 >= 0 and maze[i][j-1] == 0: # 向左if (i, j-1) not in pos:walk(i, j-1, pos + [(i, j-1)])if i+1 < m and maze[i+1][j] == 0: # 向下if (i+1, j) not in pos:walk(i+1, j, pos + [(i+1, j)])if i-1 >= 0 and maze[i-1][j] == 0: # 向上if (i-1, j) not in pos:walk(i-1, j, pos + [(i-1, j)])if (i, j) == (m-1, n-1): # 到达出口for p in pos:print('(' + str(p[0]) + ',' + str(p[1]) + ')')walk(0, 0)except:break

★★★ HJ44 Sudoku

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

def check(sudoku,i,j):  #判断这个数填入数独的i,j位置是否合理for k in range(9):if(sudoku[i][k] == sudoku[i][j]) and (k != j): #若是这一列有重复的数据,认为这个数非法return Falsefor k in range(9):if(sudoku[k][j] == sudoku[i][j]) and (k != i): #若是这一行有重复的数据,认为这个数非法return Falsem = 3*(i // 3) #m,n分别是i,j位置所在的3*3格子的最左上角的位置n = 3*(j // 3)for k in range(3):for z in range(3):if(sudoku[m+k][n+z] == sudoku[i][j]) and ((m+k) != i) and ((n+z) != j): #判断所在3*3格子是否有重复的数据return Falsereturn True #若都没有,那么认为这个数在重复上面没有问题
def find_sudoku(sudoku):for i in range(9):for j in range(9):if(sudoku[i][j] == 0): #若是找到为0的for t in range(1,10): #在这个位置依次填入1-9尝试sudoku[i][j] = tif(check(sudoku,i,j)) and (find_sudoku(sudoku)): #若是满足数独要求,而且填完这个数之后的0也能被成功填写return True #认为成功sudoku[i][j] = 0 #如果1-9都不行认为是之前填的数不合适,恢复这次填的数return False #返回之前一个falsereturn True 走到这一步认为所有的空都被填满,返回成功
while True:try:sudoku = []sudoku_index = []for i in range(9):a = list(map(int,input().split()))sudoku.append(a) #将数独输入find_sudoku(sudoku)for i in range(9):print(*sudoku[i])except:break

HJ45 名字的漂亮度

在这里插入图片描述

while True:try:#获取输入的单词数量N = int(input())while N:#获取输入的单词data = input()#去重存入字典d = {}for word in data:if word not in d:d[word] = 1else:d[word] = d[word] + 1d1 = sorted(d.values() ,reverse=True)ans = 0m = 0for word in d1:ans = ans + (26-m)*wordm = m + 1print(ans)N = N - 1except:break

HJ46 截取字符串

在这里插入图片描述

while True:try:str_input = input()k = int(input())print(str_input[:k])except:break

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

在这里插入图片描述
在这里插入图片描述

while True:try:num = list(map(int,input().split()))n = len(num)new = []for i in range(2,n-1,2):if num[i+1] not in new: #没有就追加new.append(num[i+1])new.append(num[i])else: #有就插队ind = new.index(num[i+1])new.insert(ind+1,num[i])#循环删除节点try:while True:new.remove(num[-1])except:pass#输出new = [str(x) for x in new]print(' '.join(new))except:break

HJ50 四则运算

在这里插入图片描述

while True:try:s=input()s=s.replace('{', '(')s=s.replace("}",")")s=s.replace("[","(")s=s.replace("]",")")print(int(eval(s)))except:break

HJ51 输出单向链表中倒数第k个结点

在这里插入图片描述
链表做法,直接逆向遍历

class Node(object):def __init__(self, val=0):self.val = valself.next = Nonewhile True:try:head = Node()count, num_list, k = int(input()), list(map(int, input().split())), int(input())while k:head.next = Node(num_list.pop())head = head.nextk -= 1print(head.val)except EOFError:break

HJ52 计算字符串的编辑距离

在这里插入图片描述

#动态规划经典题目
#nowcoder不能导入numpy模块,只能手工创建二维数组
#重点注意二维数据的创建方法,重点注意其横竖坐标,注意注意
#dp = [[1 for i in range(n+1)] for j in range(m+1)],横坐标是 n, 竖坐标是m
while True:try:str1 = input()str2 = input()m = len(str1)n = len(str2)dp = [[1 for i in range(n+1)] for j in range(m+1)]#重点注意二维数据的创建方法,重点注意其横竖坐标,注意注意for i in range(n+1):dp[0][i] = ifor j in range(m+1):dp[j][0] = jfor i in range(1,m+1):for j in range(1,n+1):if str1[i-1] == str2[j-1]:#如果当前两个字母相同,则跳过,步数不增加dp[i][j]=dp[i-1][j-1]else:  #如果两个字母不同,则有三种方式可以达成,删除、插入、替换,选择最小的前状态,步数加1dp[i][j] = min(dp[i-1][j-1],dp[i][j-1],dp[i-1][j])+1print(dp[m][n])except:break

HJ53 杨辉三角的变形

在这里插入图片描述

在这里插入图片描述

import sys
alt=[2,3,2,4] #发现规律,从第三行开始2324循环
for line in sys.stdin:n=int(line.strip())if n<3:print(-1)if n>=3: print(alt[(n-3)%4]) #所以对4求余,映射到上面alt列表中

HJ54 表达式求值

在这里插入图片描述

while True:try:print(int(eval(input())))except:break

HJ55 挑7

在这里插入图片描述

while True:try:n = int(input())c = 0for i in range(1,n+1):if i % 7 == 0:c += 1elif str(i).count('7') > 0 :c += 1print(c)except:break

HJ56 完全数计算

在这里插入图片描述

while True:try:n=int(input())L=[]for i in range(1,n):p=0for y in range(1,i):if i%y==0:p=p+yif i==p:L.append(p)print(len(L))except:break

HJ57 高精度整数加法

在这里插入图片描述
python语言支持大整数,不受位数限制

因此转成整型之后直接相加即可

while True:try:n1 = int(input())n2 = int(input())print(n1+n2)        # 直接输出整型数字相加之和的结果except:break

HJ58 输入n个整数,输出其中最小的k个

在这里插入图片描述
step1:首先输入n,k这两个参数(因为input()后是字符串类型,所以需要将n,k转换为int类型,这时我们需要使用list(map())函数);
step2:其次,输入一个整数数组num(原理同上,也需要转换为int型,同样需要list(map())函数;)
step3:使用sorted()函数,对num整数数组进行排序;
step4:使用for循环,遍历“排序后的、且使用切片切割好的”整数数组num;
step5:逐个打印,并使用空格分开

n,k = list(map(int,input().split()))
num = list(map(int,input().split()))
num = sorted(num)
for i in num[:k]:print(i,end=' ')

HJ59 找出字符串中第一个只出现一次的字符

在这里插入图片描述

while True:try:s = input()for i in s:if s.count(i) == 1:print(i)breakelse:print('-1')except:break

HJ60 查找组成一个偶数最接近的两个素数

在这里插入图片描述
从输入的偶数的一半开始找,到2,找出其中所有素数,再判断另外一个数是不是素数

while True:try:n = int(input())prime = []for i in range(int(n/2), 1,-1):for x in range(2,i):if i%x == 0 or (n-i)%x == 0:breakelse:prime.append(i)print(prime[0])print(n-prime[0])except:break
http://www.lbrq.cn/news/2554543.html

相关文章:

  • 网站开发团队介绍谷歌商店下载官网
  • 品划做网站广告公司广告牌制作
  • 常德市人民政府网站今日最新闻
  • 律师网站深圳网站设计关键词热度分析工具
  • 河南映天建设网站关键词优化技巧
  • 网站建设综合推荐指数网站
  • 做网站咋不用买虚拟机网址和网站的区别
  • 海南专业网站建设seo的排名机制
  • 做网站服务器需要系统关键词生成器 在线
  • 网站建设差打不开疫情防控最新通告
  • 重庆百度网站快速排名怎么样推广自己的产品
  • 高端企业门户网站建设服务公司外贸营销推广
  • 做视频网站视频存放问题企业培训计划方案
  • 榆林公司做网站外链发布
  • 有没有发布需求的网站网络营销公司招聘
  • 河南省建设监理协会网站重庆做网络优化公司电话
  • 想做棋牌网站怎么做google下载安卓版下载
  • wordpress归档侧边栏按分类长沙做优化的公司
  • linux做网站西安官网seo技术
  • 江苏网站建设空间徐州百度推广公司
  • 做百度推广首先要做网站吗上海网站建设服务
  • 做网站学不需要做后台管理系统能打开各种网站的浏览器下载
  • wordpress的css文件在百度上如何做优化网站
  • 美术生最吃香的专业seo推广公司有哪些
  • 企业网站优化方案模板什么是网络营销的核心
  • 做网站后台数据库建设指数基金定投技巧
  • dw制作一个手机网站模板下载企业宣传软文
  • 做网站数据库表设计关键词百度网盘
  • 商品展示介绍网站源码柏乡seo快排优化
  • 全国十大装修公司windows优化大师有哪些功能
  • Java 学习笔记:常用类、String 与日期时间处理
  • 32. flex 的子元素可以浮动吗
  • 吃透 B + 树:MySQL 索引的底层逻辑与避坑指南
  • Python 程序设计讲义(45):组合数据类型——集合类型:集合的常用操作
  • 光谱相机自动调焦曝光控制
  • 服务器与电脑主机的区别,普通电脑可以当作服务器用吗?