本文已参与「新人创作礼」活动,一起开启掘金创作之路。
题目来自牛客网的华为机试题库,题目为简单题-HJ8 合并表记录和HJ11 数字颠倒
HJ8 合并表记录
描述
数据表记录包含表索引index和数值value(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照index值升序进行输出。
提示:
0 <= index <= 11111111
1 <= value <= 100000
输入描述:
先输入键值对的个数n(1 <= n <= 500)
接下来n行每行输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
示例1
输入:
4
0 1
0 2
1 2
3 4
输出:
0 3
1 2
3 4
字典排序在python里用sorted(dic)
n = int(input())
dic = {}
for i in range(n):
index, val = map(int,input().split())
if index not in dic:
dic[index] = val
else:
dic[index] += val
for i in sorted(dic):
print(i,dic[i])
解析
由于做题少,也很少用python所以一直对内置函数们不是很了解。用掘金查了一下才知道对字典进行排序也有可以直接用的函数。前面用for循环实现对同一个index对应val的相加,然后直接sorted排序就可以了,使用工具就是会很简单呀。
HJ11 数字颠倒
描述 输入一个整数,将这个整数以字符串的形式逆序输出 程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
输入描述: 输入一个int整数 输出描述: 将这个整数以字符串的形式逆序输出
示例1 输入:1516000 输出:0006151
n = int(input())
s = ''
if n == 0:
print(0)
while n > 0:
k = n % 10
s += "%d"%k
n = n // 10
print(s)
解析
之前一直想的是for循环倒过来,都不知道可以s += "%d"%k,还是那句话啊,多练多见才能有进步啊