ACM类编程题笔试

一、行读取的格式

# 1、一个input()读取一行

#2、一行数字转化成列表 123->[1,2,3]
## 无空格的input()输出是数字123,需要转化成列表中的数字:
list(map(int,input())
## 有空格的input()转化为数值列表
list_1 = list(map(int,input().split())) # 分割-转化成int-list
# or
list_1 = [int(i) for i in input().split()]

# 3、第一行为组数,后续几行为每组条件
times = input()
test_list = [input() for n in range(int(times))] # 把第一行之后的数字依次记录到数组中
for input_int in test_list:
    get_count(input_int) # 依次代入函数计算出每行的结果

开锁

length=int(input())
list_cur=list(map(int,input()))
list_cor=list(map(int,input()))
res=0
 
# 比较
for i in range(length):
    add1=abs(list_cur[i]-list_cor[i])
    add2=9-max(list_cur[i],list_cor[i])+min(list_cur[i],list_cor[i])+1
    add=min(add1,add2)
    res+=add
print(res)

数组变换

def equal_array():
    length = int(input())
    # list_array = [int(i) for i in input().split()]
    list_array = list(map(int,input().split()))
    for i in range(length):
        while list_array[i]%2==0:
            list_array[i] /= 2
        else:
            continue
    list_trans = set(list_array)
    if len(list_trans)==1:
        print("YES")
    else:
        print("NO")
        
equal_array()

消消看

def get_count(n_list):
    a, b = 0, 0
    # 用 split 并且去除''之后取长度排序
    n_list = sorted([len(n) for n in [i for i in n_list.split('0') if i is not '']],reverse=True)
    for i,n in enumerate(n_list):
        # 牛妹先手
        if i%2 == 0:
            a+=n
        else:
            b+=n
    if a > b:
        print('Niumei')
        print(a - b)
    elif b > a:
        print('Niuniu')
        print(b - a)
    else:
        print('Draw')
 
times = input()
test_list = [input() for n in range(int(times))]
for n_list in test_list:
    get_count(n_list)

磁铁

  • 要用空格形式输出:需要把int先转化为str的list,然后用字符串输出
n=int(input())
list1=list(map(int,input().split()))
# 要用空格输出的形式
list2=[str(i) for i in sorted(list1)]
print(' '.join(list2))  

二、易错点

请添加图片描述
注意不能用sum(list),会报错int is not callable

res=0
n=int(input())

for i in range(n):
    row=list(map(int,input().split()))
    for j in range(n):
        res+=row[j]

print(res)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值