(python)牛客网(华为机试四)——较难
本博客为博主解题的部分记录,由于均为自己写的,所以答案并非最优解,有很多地方可以优化。
其他题解合集:
(python)牛客网(华为机试一)——入门
(python)牛客网(华为机试二)——简单
(python)牛客网(华为机试三)——中等
目录
- HJ1 字符串最后一个单词的长度
- HJ2 计算字符个数
- HJ 明明的随机数
- HJ4 字符串分隔
- HJ13 句子逆序
- HJ17 坐标移动
- HJ20 密码验证合格程序
- HJ23 删除字符串中出现次数最少的字符串
- HJ24 合唱队
- HJ25 数据分类处理
- HJ29 字符串加解密
- HJ30字符串合并处理
- HJ32 密码截取
- HJ33 整数与ip的转换
- HJ39 判断两个IP是否属于同一子网
- HJ41 称砝码
- HJ42 学英语
- HJ51 输出单向链表中倒数第k个结点
- HJ58 输入n个整数,输出其中最小的k个
- HJ68 成绩排序
- HJ77 火车进站
- HJ80 整型数组合并
- HJ81 字符串字符匹配
- HJ92 在字符串中找出连续最长的数字串
- HJ93 数组分组
- HJ94 记票统计
- HJ95 人民币转换
- HJ96 表示数字
- HJ97 记负均正
- HJ101 输入整型数组和排序标识,对其元素按照升序或降序进行排序
- HJ105 记负均正II
HJ1 字符串最后一个单词的长度
while True:try:print(len(input().split()[-1]))except:break
HJ2 计算字符个数
while True:try:str_data = input().strip().lower()char_data = input().strip().lower()print(str_data.count(char_data))except:break
HJ 明明的随机数
方1:set+sorted内置
while True:try:n = int(input().strip())data_list = []for i in range(n):data_list.append(int(input().strip()))data_list = sorted(list(set(data_list)))for i in data_list:print(i)except:break
方2:定义新数组变量去重
while True:try:n = int(input().strip())data_list = []new_list = []for i in range(n):data_list.append(int(input().strip()))for i in data_list:if i not in new_list:new_list.append(i)while new_list:print(min(new_list))new_list.remove(min(new_list))except:break
HJ4 字符串分隔
使用join()重建data
while True:try:data = input()while data:data = list(data)if(len(data)<=8):res = ''.join(data)+'0'*(8-len(data))print(res)breakelse:res = ''.join(data[:8])print(res)data = ''.join(data[8:])except:break
更快的方式:
while True:try:data = input().strip()if 0<len(data)<=8:print(data+'0'*(8-len(data)))else:n = len(data)//8m = len(data)%8for i in range(n):print(data[i*8:(i+1)*8])if m!=0:print(data[n*8:]+'0'*(8-m))except:break
HJ13 句子逆序
import sys
for line in sys.stdin:data = line.strip().split()print(' '.join(data[::-1]))
HJ17 坐标移动
import sys
def solution(end,i):x,y = end[0],end[1]if i==' ':return endif len(i)<=1 or len(i)>=4 or i.count('A')+i.count('S')+i.count('W')+i.count('D')>=2:return enda = i[0]b = int(i[1:])if a=='A':x -=belif a=='S':y -=belif a=='W':y += belse:x+=breturn [x,y]
for line in sys.stdin:sym = line.strip().split(';')end = [0,0]for i in sym:end=solution(end,i)print(','.join([str(x) for x in end]))
HJ20 密码验证合格程序
import sys
def is_con2(data):flag=[0,0,0,0]for i in data:if 'a'<=i<='z':if flag[0]==1:continueflag[0]=1elif 'A'<=i<='Z':if flag[1]==1:continueflag[1]=1elif '0'<=i<='9':if flag[2]==1:continueflag[2]=1else:if flag[3]==1:continueflag[3]=1if sum(flag)>=3:return 'OK'return 'NG'
def is_con3(data):len_d = len(data)for i in range(3,int(len_d/2)):for j in range(len_d-i):str1=data[j:j+i]#将data分为前后两部分,看前一部分是否在后一部分中str2=data[j+i:]if str1 in str2:return 'NG'return 'OK'
def solution(data):if len(data)>8:if is_con2(data)=='OK':if is_con3(data)=='OK':return 'OK'return 'NG'
for line in sys.stdin:data = line.strip()res = solution(data)print(res)
HJ23 删除字符串中出现次数最少的字符串
import sys
for line in sys.stdin:data = line.strip()data_s = list(set(list(data)))nums ={}min_c=len(data)for i in data_s:if min_c>data.count(i):min_c=data.count(i)nums[i] = data.count(i)for k,v in nums.items():if v==min_c:data=data.replace(k,'')print(data)
HJ24 合唱队
待补充
HJ25 数据分类处理
这到题题意描述也太难以理解了吧,甚至我是对着例子去扣的意思,而且我觉得题意有歧义,[相同的R<i>只需要输出索引小的以及满足条件的I,索引大的需要过滤掉]
好像也不是说R就要去重吧,我第一次读觉得是重复的R只输出对应满足条件的I中最小的下标的值。
总之要做的事情实际上就是对R去重排序,然后依次找出I里面包含R的数字的下标和值,当然当轮循环的tmp列表需要加上被包含的r和长度。然后最后输出的时候要在开头加上整体的总长度。
while True:try:res = []I = input().split()[1:]R = list(set(map(int,input().split()[1:])))R = sorted(R)for r in R:res_tmp = []for i,i_d in enumerate(I):if str(r) in str(i_d):index = str(i)res_tmp = res_tmp +[index,i_d]if res_tmp:res_tmp = [str(r),str(int(len(res_tmp)/2))]+res_tmpres = res + res_tmpprint(str(len(res))+" "+" ".join(res))except:break
HJ29 字符串加解密
此题思路上感觉比较简单,加密和解密分别一套ifelse判断对应的情况,然后进行转换即可,有一些小tips值得记录:字符转数字ord()
,数字转字符chr()
,大写转小写lower()
,小写转大写upper()
,是否是数字isdigit()
,是否是小写islower()
.
def get_encryption(enc):'''加密'''res = ''for i in enc:if i.isdigit():if i=='9':res = res +'0'else:res += str(int(i)+1)else:ord_tmp = ord(i)if i.islower():#小写if ord_tmp==z_num: res = res+'A'else:res += chr(ord_tmp+1).upper()else:#大写if ord_tmp==Z_num: res = res+'a'else:res += chr(ord_tmp+1).lower()return resdef get_decryption(dec):'''解密'''res = ''for i in dec:if i.isdigit():if i=='0':res = res +'9'else: res += str(int(i)-1)else:ord_tmp = ord(i)if i.islower():#小写if ord_tmp==a_num: res = res+'Z'else:res += chr(ord_tmp-1).upper()else:#大写if ord_tmp==A_num: res = res+'z'else:res += chr(ord_tmp-1).lower()return resz_num = ord('z')
Z_num = ord('Z')
a_num = ord('a')
A_num = ord('A')while True: try:enc = input().strip()dec = input().strip()en_res = get_encryption(enc)de_res = get_decryption(dec)print(en_res)print(de_res)except:break
HJ30字符串合并处理
这道题题意重新阐述一下:只按照题意方式处理0-9,a-f,A-F的字符,除此之外的保持不变。所以思路就是若字符是0-9,则直接转二进制,再逆序转十进制,再转16进制,若为字母,则先转十进制,再转二进制,再逆序,再转十进制,最后转16进制。
有些地方要注意:
1.十进制转二进制用bin(),二进制形式为‘0bXXX’,获取后面的XXX记得str[2:]
,然后不足四位的进行补充;二进制或十六进制转十进制用int;十进制转十六进制用hex,十六进制形式为‘0xXXX’,获取后面的‘XXX’记得str[2:]
2.末尾需要注意如果奇数列和偶数列长度不同,在chain.from_iterable(zip(str1,str2))
这一步合并列表之后,长的那一列会被遗弃,所以需要添加一步处理。
from itertools import chain
template = 'abcdefABCDEF0123456789'def solution(data):'''主程序入口'''data = list(data)res = ''str1 = [] #偶数 0开始str2 = [] #奇数for i,i_data in enumerate(data):if i%2==0:str1.append(i_data)else:str2.append(i_data)#排序str1.sort()str2.sort()#16编码,倒序tmp = ''for str_data in [str1,str2]:for i in range(len(str_data)):i_data = str_data[i]if i_data in template: #0-9a-zA-Zif i_data.isdigit():#0-9tmp = bin(int(i_data))[2:]if len(tmp)<=3: #填充tmp = '0'*(4-len(tmp))+tmptmp = '0b'+ tmp[::-1]str_data[i] = str(hex(int(tmp,2))[2:].upper())else:tmp = '0x'+i_datatmp = bin(int(tmp,16))[2:]tmp = '0b'+tmp[::-1]str_data[i] = str(hex(int(tmp,2))[2:].upper())else:continueresult = list(chain.from_iterable(zip(str1,str2)))#str1 和str2长度不同的处理if len(str1)>len(str2):result+=str1[-1]elif len(str2)>len(str1):result+=str2[-1]res = ''.join(result)return reswhile True:try:data = input().strip().split()data = data[0]+data[1]res = solution(data)print(res)except:break
HJ32 密码截取
manacher算法 待补充
HJ33 整数与ip的转换
思路比较简单,ip转十进制的时候分开转二进制,然后拼接到一起,十进制转ip则反向。只是要注意每次处理之前记得填充0.填充使用zfill()
import sys
def solution(data):if len(data)==4:res = []for i in data:tmp = bin(int(i))[2:] #十进制转二进制tmp = tmp.zfill(8) #填充res.append(tmp)result = ''.join(res)result = int('0b'+result,2)else:res = []data = data[0]data = bin(int(data))[2:]data = data.zfill(32) #填充for i in range(4):tmp = data[i*8:(i+1)*8]tmp = str(int(tmp,2))#二进制转十进制res.append(tmp)result = '.'.join(res)return resultfor line in sys.stdin:data = line.strip().split('.')res = solution(data)print(res)
HJ39 判断两个IP是否属于同一子网
这道题思路比较简单,首先判断子网掩码和ip是否合法,然后进行同一子网络判断。
需要注意的是子网掩码合法性判断:
子网掩码中:1.每一段不能超过255,不能低于0 2.不能含有1插在0中间,也不能有0插在1中间,所以把子网掩码转化成长度为32的01字符串,然后找出0的下标index,分别看str[:index]和str[index+1:]是否含有0和1就行
def is_valid(subnet,ip1,ip2):#submittmp = ''subnet_list = subnet.split('.')for item in subnet_list:if int(item)<0 or int(item)>255:return Falsetmp += bin(int(item))[2:].zfill(8)index = tmp.index('0')if '0' in tmp[:index] or '1' in tmp[index+1:]:return Falseelse:#ipfor ip in [ip1,ip2]:ip_list = ip.split('.')for i in ip_list:if int(i)>255 or int(i)<0:return Falsereturn Truedef and_fuc(subnet,ip):res = []subnet_list = subnet.split('.')
# sub_tmp = [int('0b'+i,2) for i in subnet_list]ip_list = ip.split('.')
# ip_tmp = [int('0b'+i,2) for i in ip_list]for i in range(4):x = int(subnet_list[i]) & int(ip_list[i])res.append(x)final_res = '.'.join(map(str,res))return final_resdef solution(subnet,ip1,ip2):res = 0if not is_valid(subnet,ip1,ip2):res = 1else:if and_fuc(subnet,ip1) == and_fuc(subnet,ip2):res = 0else:res = 2return reswhile True:try:subnet = input().strip()ip1 = input().strip()ip2 = input().strip()res = solution(subnet,ip1,ip2)print(res)except:break
HJ41 称砝码
此题思路:首先建立重量集合w_set = set([0]),每增加考虑一个砝码,就都要在w_set中每个元素的基础上新增【这些元素加上新增砝码之后的重量】以及【xn个新增砝码之间的组合情况】。思路感觉可以大致表达为这种形式total(n) = total(n-1)+solution(wn)
while True:try:num = eval(input())weights = list(map(int, input().strip().split()))nums = list(map(int, input().strip().split()))w_set = set([0])for i in range(num):w_set_tmp = list(w_set)for j in range(nums[i]):for item in w_set_tmp:w_set.add((j+1)*weights[i]+item)print(len(w_set))except:break
HJ42 学英语
实际上就是写一个三位翻译器。三个一组进行翻译并且带上对应位置的单位。
import sysuint_tmp = ['hundred','','thousand','million','billion']
a_tmp = ['one','two','three','four','five','six','seven','eight','nine','ten']
b_tmp = ['eleven','twelve','thirteen','fourteen','fifteen','sixteen','seventeen','eighteen','nineteen']
c_tmp = ['twenty','thirty','forty','fifty','sixty','seventy','eighty','ninety']def solution(data):length = len(data)other = length%3res = []for i in range(length//3+1):hundreds_r = ''if i<length//3:data_tmp = data[length-(i+1)*3:length-i*3]if int(data_tmp[0])>0: #等于零无描述hundreds_r = a_tmp[int(data_tmp[0])-1]+' '+uint_tmp[0]+' '+'and'two = int(data_tmp[1:])else:if other ==0:continuetwo = int(data[:other])if 11<=two<=19: #十几two_r = b_tmp[two-10-1]+' 'elif two<11: #几two_r = a_tmp[two-1]+' 'else:first = two//10second = two%10if second>0:#几十几two_r = c_tmp[first-2]+ ' '+a_tmp[second-1] +' 'else:#几十two_r = c_tmp[first-2]+ ' 'res_tmp = hundreds_r +' '+two_r+uint_tmp[i+1]+' 'res.insert(0, res_tmp)return ''.join(res).replace(' ',' ').strip()for line in sys.stdin:data = line.strip()res = solution(data)print(res)
HJ51 输出单向链表中倒数第k个结点
python 在这种题面前要想AC很简单。还有另一种使用python构建单链表数据结构的方式,后面闲了再补充吧。如果是考试的话不如直接一步到位,过了再说。
#python 不构建数据结构
while True:try:num = eval(input())
# l_data = list(map(int,input().strip().split()))l_data = input().strip().split()index = eval(input())if index<=0 or index >num:print(0)else:print(l_data[-(index)])except:break
HJ58 输入n个整数,输出其中最小的k个
python的优势之一就是方便
while True:try:[n,num] = input().split()l_data = sorted(list(map(int,input().split())))print(' '.join(list(map(str,l_data[:int(num)]))))except:break
HJ68 成绩排序
这里最后我如果使用print(str(item[0]),’ ',str(item[1])),会报错提示格式不对,如果使用+号就是正常的。这个具体差别我没有深究,反正注意如果调试后代码逻辑和字符处理无问题但是却一直提示格式错误可以尝试修改print()输出方式。
while True:try:num = eval(input().strip())is_asc = eval(input()) #0 从高到低降序data_list = []for i in range(num):name,grade = input().strip().split()data_list.append([name,int(grade)])if is_asc == 0:data_d = sorted(data_list,key=lambda item:item[1],reverse=True)else:data_d = sorted(data_list,key=lambda item:item[1],reverse=False)for item in data_d:print(str(item[0])+' '+str(item[1]))except:break
HJ77 火车进站
python用pop和append模拟栈结构操作。每个元素进栈之后存在两种大情况:
1.当前元素只进栈 2.当前元素出栈
其中1情况中元素出栈后,栈不为空的情况下可能继续出栈,所以要讨论每个元素出栈后的栈的情况。最后要注意按照大小排个序再输出。直接按照程序顺序add进集合后顺序不符合提交规则,会不通过。
def solution(in_list,stack,res,total):for i in in_list:stack.append(in_list[0])in_list.pop(0)if len(in_list)>0:stack1 = stack.copy()res1 = resin_list1 = in_list.copy()stack2 = stack.copy()res2 = resin_list2 = in_list.copy()#出,则出栈while len(stack1)>0: #迭代出栈tmp1 = stack1.pop()res1+=tmp1stack3 =stack1.copy()in_list3 = in_list1.copy()res3 = res1solution(in_list3,stack3,res3,total)#不出,则下一个继续进栈solution(in_list2,stack2,res2,total)else:while(len(stack)>0):tmp = stack.pop()res+=tmptotal.add(res)num = eval(input().strip())
in_list = input().strip().split()
stack = []
res = ''
total = set([])
solution(in_list,stack,res,total)
total = list(map(int,list(total)))
for item in sorted(total):print(' '.join(list(str(item))))
HJ80 整型数组合并
思路简单:合并去重排序然后输出,且python的优势之一就是方便
while True:try:num1 = eval(input().strip())list1 = list(map(int,input().strip().split()))num2 = eval(input().strip())list2 = list(map(int,input().strip().split()))print(''.join(list(map(str,sorted(list(set(list1+list2)))))))except:break
HJ81 字符串字符匹配
思路简单如下
while True:try:is_true = Trueshort_str = input().strip()long_str = input().strip()for i in short_str:if i not in long_str:is_true = Falsebreakprint('true') if is_true else print('false')except:break
HJ92 在字符串中找出连续最长的数字串
直接暴力遍历。就是记得注意第二个循环条件要加1,因为python切片操作不包含右边边界。
import sysdef solution(str_data):max_len = 0str_len = len(str_data)res = ''for i in range(str_len):for j in range(i,str_len+1,1):tmp = str_data[i:j]if tmp.isdigit():if len(tmp)>max_len: max_len = len(tmp)res = tmpelif len(tmp) == max_len:res+=tmpelse:continuereturn [res,str(max_len)]for line in sys.stdin:str_data = line.strip()res = solution(str_data)print(','.join(res))
HJ93 数组分组
思路:
1.先分组 再分组求和S3S5 再求剩下的和S 如果(S-abs(S3-S5))%2==0则可能可行
2.在剩下数的组里凑数看能不能凑出(S + abs(S3-S5))/2的值
3.凑数的时候使用分叉树递归遍历子集
4.注意遍历删除数组时需要倒序删除
def get_subset(data,sub_b,index,total):'''分叉树递归'''if index==len(data):total.append(sub_b)else:sub_a = sub_b[:]sub_b.append(data[index])get_subset(data,sub_a,index+1,total)get_subset(data,sub_b,index+1,total)def solution(data,S):total = []get_subset(data,[],0,total)for i in total:if sum(i)==S:return Truereturn Falsewhile True:try:num = eval(input())data = list(map(int,input().strip().split()))list3 = []list5 = []for i in reversed(range(len(data))):item = data[i]if abs(item)>0 and abs(item)%5==0:list5.append(item)data.pop(i)if abs(item)>0 and abs(item)%3==0:list3.append(item)data.pop(i)S3 = sum(list3)S5 = sum(list5)S = sum(data)if (S-abs(S3-S5))%2!=0:print('false')continue#凑数res = solution(data,(S+abs(S3-S5))/2)if res:print('true')else:print('false')except:break
HJ94 记票统计
比较简单
while True:try:num_a,name,num_b,data = eval(input().strip()),input().strip().split(),eval(input().strip()),input().strip().split()#统计票数并输出total = 0for i in name:print(i+' : '+str(data.count(i)))total += data.count(i)print('Invalid : %s'%(len(data)-total))except:break
HJ95 人民币转换
我不知道我在干什么。。。。。反正结果出来了。。。
import sysa_list = ['元','万','亿']
# b_list = ['仟','佰','拾','']
b_list = ['','拾','佰','仟']
c_list = ['角','分']
tmp_dict = {'0':'零','1':'壹','2':'贰','3':'叁','4':'肆','5':'伍','6':'陆','7':'柒','8':'捌','9':'玖'}def solution(data):#point 1res = ''[dot_l,dot_r] = data.split('.') #小数点左右# 小数点左边l = len(dot_l)if dot_l!='0':for i in range((l//4+1)):#四位翻译器if i==l//4:t_data = data[:l-i*4].zfill(4)if t_data=='0000':breakelse:t_data = data[l-(i+1)*4:l-i*4]tmp=''for t in range(len(t_data)): tmp+=tmp_dict[t_data[t]]if t_data[t]!='0':tmp+=b_list[3-t]if i==l//4:tmp = tmp[4-l%4:] #去掉最高位开头的零if t_data[-3:]=='000':tmp = tmp.replace('零零零','')tmp = tmp.replace('零零零','零').replace('零零','零').replace('壹拾','拾').replace('拾零','拾') #point 34tmp+=a_list[i]res = tmp+res#是否加整if dot_r=='00': #point 2res+='整'else:#小数点右边 #point 1for i in range(len(dot_r)): #小数点后面无零if dot_r[i]!='0':res += tmp_dict[dot_r[i]]res+=c_list[i]#point 5 if l>=6:#判断 万位0且十万和千位不为零if dot_l[-4]!='0' and dot_l[-6]!=0 and dot_l[-5]=='0':res = res.replace('万零','万')return '人民币'+resfor line in sys.stdin:data = line.strip()print(solution(data))
HJ96 表示数字
我的思路:
开头结尾字符单独讨论,中间字符逐个遍历,中间字符每个都有四种情况,涉及*是否添加及添加位置:大类1.是数字:(1)前后均是数字 (2)前是字符后不是数字(3)前后均不是数字。大类 2.不是数字。
import sysfor line in sys.stdin:data = line.strip()first = data[0]last = data[-1]if len(data)==1:if data.isdigit():print('*'+data+'*')else:print(data)continueif first.isdigit():if data[1].isdigit():tmp ='*'+first #如果后字符是数字则在开头添加*if not data[1].isdigit():tmp = '*'+first+'*' #在前后新增*else:tmp = firstfor i in range(1,len(data)-1,1):if data[i].isdigit():#如果当前字符是数字if data[i-1].isdigit() and data[i+1].isdigit():tmp +=data[i] #如果前字符和后字符都是数字则不新增*elif data[i-1].isdigit() and not data[i+1].isdigit():tmp += (data[i]+'*') #在后面新增*elif not data[i-1].isdigit() and data[i+1].isdigit():tmp += ('*'+data[i]) #在前面新增*else:tmp += ('*'+data[i]+'*') #在前后新增*else: tmp+= data[i]if last.isdigit():if data[-2].isdigit():tmp +=(last+'*') #如果前字符是数字则在末尾添加*if not data[-2].isdigit():tmp += ('*'+last+'*') #在前后新增*else:tmp+=lastprint(tmp)
HJ97 记负均正
较简单,下面方法1更简洁,方法2更快:
#方法1
while True:try:num,data =input(), list(map(int,input().split()))list1 = [i for i in data if i<0]list2 = [i for i in data if i>0]print(str(len(list1))+' '+str(round(sum(list2)/len(list2),1)))except:break
#方法2
while True:try:num,data =input(), list(map(int,input().split()))a = 0b = 0c=0for i in data:if i<0:a+=1elif i>0:b+=1c+=ielse:continueprint(str(a)+' '+str(round(c/b,1)))except:break
HJ101 输入整型数组和排序标识,对其元素按照升序或降序进行排序
简单
while True:try:num,data,x = input(),list(map(int,input().split())),input().strip()if x=='0':x = Falseelse:x = Truetmp = list(map(str,sorted(data,reverse=x)))print(' '.join(tmp))except:break
HJ105 记负均正II
这个题和HJ97记负均正思路一样,都比较简单。需要注意的是这个题是一行输入一个元素,所以获取全部输入的方式和上个题不同,代码如下:
import sys
data = []
for line in sys.stdin:data.append(int(line.strip()))
num1 = 0 #<0
num2 = 0 #>=0
s = 0
for i in data:if i<0:num1+=1else :num2+=1s+=i
print(num1)
print(round(s/num2,1))
青古の每篇一歌
《锦鲤抄》
阳光微凉 琴弦微凉
风声过往 人间仓皇
(python)牛客网(华为机试四)——较难相关推荐
- 牛客网华为机试(python)
前言 牛客网华为机试(https://www.nowcoder.com/exam/oj/ta?tpId=37) 按难度分为入门,简单,中等,困难,较难五个等级 目录标题 前言 一,入门 二,简单 一, ...
- (牛客网)华为机试(二)
(牛客网)华为机试题集解答 在解题前先分享一波oj刷题的固定格式代码,方便输入时使用 import java.util.*; import java.io.*; public class Main{ ...
- JavsScript牛客网华为机试(11-20)题解
牛客网华为机试题解JavaScript版本 华为机试第11-20题解答(js) 11.数字颠倒 12.字符串反转 13.句子逆序 14.字符串排序 15.求int型数据在内存中存储时1的个数 16.购 ...
- 牛客网--华为机试在线训练10:字符个数统计
牛客网–华为机试在线训练10:字符个数统计 题目描述 编写一个函数,计算字符串中含有的不同字符的个数.字符在ACSII码范围内(0~127).不在范围内的不作统计. 输入描述: 输入N个字符,字符在A ...
- 牛客网–华为机试在线训练9:提取不重复的数
牛客网–华为机试在线训练9:提取不重复的数 题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数. 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺 ...
- 牛客网–华为机试在线训练8:合并表记录
牛客网–华为机试在线训练8:合并表记录 题目描述 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出. 输入描述: 先输入键值对的个 ...
- 牛客网–华为机试在线训练7:取近似值
牛客网–华为机试在线训练7:取近似值 题目描述 写出一个程序,接受一个正浮点数值,输出该数值的近似整数值.如果小数点后数值大于等于5,向上取整:小于5,则向下取整. 输入描述: 输入一个正浮点数值 输 ...
- 牛客网–华为机试在线训练6:质数因子
牛客网–华为机试在线训练6:质数因子 题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ) 最后一个数后面也要有空格 详细描述: 函数接 ...
- 牛客网–华为机试在线训练5:进制转换
牛客网–华为机试在线训练5:进制转换 题目描述 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串.(多组同时输入 ) 输入描述: 输入一个十六进制的数值字符串. 输出描述: 输出该 ...
- 牛客网–华为机试在线训练4:字符串分隔
牛客网–华为机试在线训练4:字符串分隔 题目描述 •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组: •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输 ...
最新文章
- cocos2dx 场景的切换
- 《游戏服务器的架构演进》阅读笔记
- python-day2~3
- 2021牛客OI赛前集训营-方格计数【计数,dp】
- [vue] 怎么缓存当前打开的路由组件,缓存后想更新当前组件怎么办呢?
- 常用牛人主页链接(计算机视觉、模式识别、机器学习相关方向,陆续更新。。。。)【转】...
- Excel复制粘贴——跳过空单元格案例
- WIN和LIN环境下对拍程序
- js的深拷贝的理解和实现
- 基础篇:6.Android数据库编程---SQLite
- nodejs,webpack安装以及初步运用
- wordpress主题制作,wordpress主题模板制作
- 几张思维导图告诉你搜索引擎优化(SEO)核心点
- USB_PD_R3_0 V1.1 PD协议 协议层 中文翻译
- 计算方法(数值分析)实验:勒让德多项式求展开的三次平方逼近多项式代码实现 java
- [OpenAirInterface实战-17] :OAI 软件无线电USRP N300/N310硬件详解
- Aras innovator: 粗绘innovator框架
- 旁门左道:让移动游戏在APP Store下载量暴涨的邪门功夫
- 程序设计入门——C语言 翁恺 期末考试编程题
- 前程无忧爬虫,仅供学习使用