栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

牛客网华为机试(python)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

牛客网华为机试(python)

前言

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

目录标题
  • 前言
  • 一,入门
  • 二,简单

一,入门

HJ7 取近似值

n = float(input())
res = lambda x:int(x+0.5)
print(res(n))

HJ9 提取不重复的整数
提取到输入字符串后就对其进行倒置,排序时直接按ls1的顺序进行排列

ls1 = list(input()[::-1])
ls2 = list(set(ls1))
ls2.sort(key=ls1.index)
print(int(''.join(ls2)))

HJ46 截取字符串
字符串切片

str1 = input()
n = int(input())
print(str1[:n])

HJ58 输入n个整数,输出其中最小的k个
map()函数是为了初始化n,k以及列表中的str类型为int类型
最后输出的*nums[:k]是对num[:k]的解包。

n, k = map(int, input().split())
nums = sorted(list(map(int, input().split())))
print(*nums[:k])

HJ101 输入整型数组和排序标识,对其元素按照升序或降序进行排序
依然是map()函数转化类型,sort()函数排序,*解包列表。

n = int(input())
ls1 = list(map(int,input().split()))
flag = int(input())
if flag == 0:
    ls1.sort()
    print(*ls1)
elif flag == 1:
    ls1.sort(reverse=True)
    print(*ls1)
二,简单

HJ1 字符串最后一个单词的长度

ls1 = input().split()
print(len(ls1[-1]))

HJ2 计算某字符出现次数
count函数

str1 = input()
str2 = input()
print(str1.lower().count(str2.lower()))

Counter类

from collections import Counter
str1 = input().lower()
str2 = input().lower()
s = Counter(str1)
if str2 in str1:
    print(s.get(str2))
else:
    print('0')

for循环

str1 = input().lower()
str2 = input().lower()
count = 0
for i in str1:
    if str2 == i:
        count+=1
print(count)

HJ4 字符串分隔
ljust()函数是一个填充函数,str1.ljust(8,“0”)是指让str1靠左对齐,不足8位时剩下的用0填充

str1 = input()
while len(str1)>8:
    print(str1[:8])
    str1 = str1[8:]
print(str1.ljust(8,"0"))

HJ5 进制转换
十六进制转10进制

str1 = input()
print(int(str1,16))

HJ6 质数因子
给一个整数求其质因子,180 = 22335,2 2 3 3 5就是180的质因子
1没有质因子,2的质因子是本身
math.sqrt(n)是一个数开平方,一个数的质数最小为2,最大也不超过平方根
%是取余,//是整除

import math
n = int(input())
for i in range(2,int(math.sqrt(n))+1):
    while n%i == 0:
        print(i,end=' ')
        n = n//i
if n >= 2:
    print(n,end=' ')

HJ8 合并表记录
dicc[i] = dicc.get(i,0) + j 的意思是向dicc中的键 i 取值,取不到就意味着该键不存在并获取到默认值0,所以dicc[i] = 0+j 。如果键 i 存在,取出值假如为10,所以重新给dicc[i]赋值10+j
sorted(dict) 操作字典类型也是返回一个列表,但是默认是键的递增列表。

num = int(input())
dicc = {}
for n in range(num):
    i,j = list(map(int,input().split()))
    dicc[i] = dicc.get(i,0) + j
for k in sorted(dicc):
    print(f'{k} {dicc[k]}')

HJ10 字符个数统计

str1 = input()
print(len(set(str1.replace('n',''))))

HJ11 数字颠倒
数字颠倒用字符串切片很容易做到
下面是用数组来做的,思路是计算出str(num)的长度,把字符串后面的字符添加到列表前面来,然后输出

nums = str(input())
i = len(nums) - 1
ans = []
while  i>=0:
    ans.append(nums[i])
    i-=1
res = ''.join(ans)
print(res)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/960690.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号