题目描述
数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
代码:
import sys
while True:
try:
n = int(sys.stdin.readline())#input的方式太重要
dic = dict()
for i in range(n):
string = str(sys.stdin.readline())#input的方式太重要
key, value = string.split(" ")
key = int(key)
value = int(value)
if key in dic:
dic[key] += value
else:
dic[key] = value
ls = list(dic.keys())
ls.sort()
for key in ls:
print("{} {}".format(key, dic[key]))
except:
break
题目描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
代码:
import sys
while True:
try:
num = list( str(input() ))
num.reverse()
set_num = set(num)
ls = []
for n in num:
if n in set_num:
ls.append(n)
set_num.remove(n)
else:
continue
output = "".join(ls)
print(output)
except:
break
题目描述
编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次
输入
abaca
输出
3
代码:
print(len(set(list(str(input())))))
题目描述
输入一个整数,将这个整数以字符串的形式逆序输出
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
代码:
while True:
try:
num = int(input())
"""
num = list(str(num))
num.reverse()
print("".join(num))
"""
print(str(num)[::-1])
pass
except:
break
题目描述
写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)
代码:
while True:
try:
string = str(input())
if len(string) > 1000:
continue
else:
print(string[::-1])
pass
except:
break
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
接口说明
/**
* 反转句子
*
* @param sentence 原句子
* @return 反转后的句子
*/
public String reverse(String sentence);
import sys
while True:
try:
sentence = str(input())
ls = sentence.split(" ")
ls.reverse()
print(" ".join(ls))
except:
break
题目描述
给定n个字符串,请对n个字符串按照字典序排列。
代码:
while True:
try:
n = int(input())
ls = []
for i in range(n):
string = str(input())
ls.append(string)
ls.sort()
[print(value) for value in ls]
pass
except:
break
while True:
try:
num = int(input())
print(bin(num)[2:].count("1"))
pass
except:
break
题目描述
输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37…70,71,72,73…)的个数(一组测试用例里可能有多组数据,请注意处理)
代码:
while True:
try:
num = int(input())
if 0<num<7:
print(0)
elif num>30000:
break
elif 7 <= num <=30000:
ls = list(range(7, num+1, 7))
ls2 = [i if "7" in str(i) else 0 for i in range(num+1)]
ls.extend(ls2)
ls = set(ls)
ls.remove(0)
print(len(set(ls)))
except:
break
开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。
输入:
合法坐标为A(或者D或者W或者S) + 数字(两位以内)
坐标之间以;分隔。
非法坐标点需要进行丢弃。如AA10; A1A; $%$; YAD; 等。
下面是一个简单的例子 如:
A10;S20;W10;D30;X;A1A;B10A11;;A10;
处理过程:
起点(0,0)
+ A10 = (-10,0)
+ S20 = (-10,-20)
+ W10 = (-10,-10)
+ D30 = (20,-10)
+ x = 无效
+ A1A = 无效
+ B10A11 = 无效
+ 一个空 不影响
+ A10 = (10,-10)
结果 (10, -10)
注意请处理多组输入输出
pos = [0, 0]
def process(order):
if len(order) <= 1:
pass
elif len(order) > 1:
try:
if order[0] == "A":
pos[0] -= int(order[1:])
elif order[0] == "D":
pos[0] += int(order[1:])
elif order[0] == "S":
pos[1] -= int(order[1:])
elif order[0] == "W":
pos[1] += int(order[1:])
else:
pass
except:
pass
while True:
try:
string = str(input())
ls = string.split(";")
ls = [s.strip(" ") for s in ls]
pos = [0, 0]
[process(order) for order in ls]
print("{},{}".format(pos[0], pos[1]) )
except:
break