【团体程序设计天梯赛-部分练习集】


L1-026 I Love GPLT~5

这道超级简单的题目没有任何输入。

你只需要把这句很重要的话 —— “I Love GPLT”——竖着输出就可以了。

所谓“竖着输出”,是指每个字符占一行(包括空格),即每行只能有1个字符和回车。

输入样例:

输出样例:

I
 
L
o
v
e
 
G
P
L
T

注意:输出的两个空行中各有一个空格。

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

题解

a = 'I Love GPLT'
for i in range(len(a)):     # 遍历a
    print(a[i])

L1-022 奇偶分家~10

给定N个正整数,请统计奇数和偶数各有多少个?

输入格式:

输入第一行给出一个正整N(≤1000);第2行给出N个非负整数,以空格分隔。

输出格式:

在一行中先后输出奇数的个数、偶数的个数。中间以1个空格分隔。

输入样例:

9
88 74 101 26 15 0 34 22 77

输出样例:

3 6

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

题解

n = int(input())
N = map(int, input().split())
s1, s2 = 0, 0       # 存储两个变量
for i in N:         # 遍历输入的N
    if i%2 == 1:    # 当为奇数时
        s1 += 1     # 奇数个数增加
    else:           # 当为偶数时
        s2 += 1     # 偶数个数增加
print(s1, s2)       # 输出奇、偶数个数

L1-005 考试座位号~15

每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。

输入格式:

输入第一行给出一个正整数 N(≤1000),随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到 N 编号。输入保证每个人的准考证号都不同,并且任何时候都不会把两个人分配到同一个座位上。

考生信息之后,给出一个正整数 M(≤N),随后一行中给出 M 个待查询的试机座位号码,以空格分隔。

输出格式:

对应每个需要查询的试机座位号码,在一行中输出对应考生的准考证号和考试座位号码,中间用 1 个空格分隔。

输入样例:

4
3310120150912233 2 4
3310120150912119 4 1
3310120150912126 1 3
3310120150912002 3 2
2
3 4

输出样例:

3310120150912002 2
3310120150912119 1

代码长度限制
16 KB
时间限制
200 ms
内存限制
64 MB

题解

q = int(input())
# 存储3个空列表,用于将不同类型的变量存储各个空列表
a, b, c = [], [], []
for i in range(q):
    t = input().split()
    a.append(t[0])
    b.append(int(t[1]))
    c.append(t[2])
w = int(input())
d = input().split()
for i in d:
    # 索引查询的值在列表的那个位置,对应的也就是其他两个列表相对应的索引
    t = b.index(int(i))
    print(a[t], c[t])

L1-027 出租~20

下面是新浪微博上曾经很火的一张图:
出租
一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对应 arr[0]=8,index[2]=3 对应 arr[3]=0,以此类推…… 很容易得到电话号码是18013820100。

本题要求你编写一个程序,为任何一个电话号码生成这段代码 —— 事实上,只要生成最前面两行就可以了,后面内容是不变的。

输入格式:

输入在一行中给出一个由11位数字组成的手机号码。

输出格式:

为输入的号码生成代码的前两行,其中arr中的数字必须按递减顺序给出。

输入样例:

18013820100

输出样例:

int[] arr = new int[]{8,3,2,1,0};
int[] index = new int[]{3,0,4,3,1,0,2,4,3,4,4};

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

题解

numbers = input()
a = {}
for i in range(10):     # 控制数在0~9(包含9)
    a[i] = 0
for i in numbers:
    a[int(i)] = 1
arr = []
for i in range(9, -1, -1):
    if a[i] == 1:
        arr.append(i)
nums_index = []
for i in numbers:
    # 将满足条件的依次添加到nums_index空列表中
    nums_index.append(arr.index(int(i)))

s1 = 'int[] arr = new int[]{'
# 从头开始遍历到最后一位(不包含最后一位)
for i in arr[:-1]:
    s1 = s1 + str(i) + ','
s1 = s1 + str(arr[-1])+'};'
print(s1)

s2 = 'int[] index = new int[]{'
for i in nums_index[:-1]:
    s2 = s2 + str(i) + ','
s2 = s2 + str(nums_index[-1])+'};'
print(s2)

上一页:python小算法

一天一点python小基础:

列表方法:

‘’’
append:添加
extend:扩展
insert:插入
in、not in:查找
index:索引
count:元素出现的次数
len:元素长度
下标:修改
remove:删掉某一个元素
pop:删掉最后一个
del:根据下标进行删除

元素排序:
sort、reverse、
‘’’

# append:
a = []
for i in range(1, 9):
    a.append(i)     # 将i中所有元素依次添加到空列表a中
print(a)
# extend:
b = [20, 52]
a.extend(b)         # 将b列表当中的元素依次追加到a列表中
print(a)
# insert:
a.insert(6, 66)     # 第一个元素表示下标,第二个元素表示插入下标的对象
print(a)
# del:
del a[2]        # 在指定位置删除一个元素
print(a)
# pop()         # 弹出末尾最后一个元素
a.pop()
print(a)
a.remove(4)     # 直接删除指定内容过的元素
print(a)
# 升序:
a = [2, 5, 3, 8, 6]
a.sort()
print(a)
# 降序
a = [2, 5, 3, 8, 6]
a.sort(reverse=True)
print(a)
# 翻转
a = [4, 6, 3 ,8, 6, 9]
a.reverse()
print(a)

元组
‘’’

元组的元素不可修改

‘’’

b = 5, 20
print(type(b))
c = (52)
print(type(c))
d = (66,)
print(type(d))

元组遍历

字典
‘’’
del
.clean()
.get()

len函数:测量字典中,键值对的个数

可遍历:
keys函数:获取字典中所有的键
values函数:获取字典中所有的值
items函数:获取字典中所有的键值对

‘’’

集合
‘’’
set
无序不重复
add:添加元素
update:把集合y中的元素插入集合x中
remove:移除元素
差集-
对称差集^
交集&
并集|

‘’’

持续更新中…

每日一言:

积极的气场,本省就是一种独特的气场。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值