第一题:
输入整数n,
输入多行数组,
对于每个数组,取前n个数,添加至结果数组中。直至数组为空。
输出结果数组。
例,输入:
2
1,1,1,1,1
2
3,3,3
输出:
1,1,2,3,3,1,1,3,1
此次题目输入,跟以往输入不同,没有告诉我们要输入多少行数组,所以需要一个结束输入条件,经过测试,当输入为空字符时,结束输入
gap = eval(input()) # 取数间隔
nums = []
total = 0 # 结果数组的长度
result = []
try:
while True:
num = input()
if num == '':
break
total += len(num.split(','))
nums.append(num.split(','))
except:
pass
while len(result) < total:
# 当所有数组元素还没取完的时候,继续遍历,取数
for i,j in enumerate(nums):
if len(j):
result.extend(nums[i][:gap])
nums[i][:gap] = []
print(','.join(result))print(','.join(result))
第二题:
对字符串进行处理。
太长了,忘记了。。。
def left_move(s, n):
'''将字符串s循环左移n位'''
if len(s) == 0:
return ''
shift = n%len(s)
move = s[0:shift]
re = s[shift:]
return ''.join([re,move])
def check(s):
'''检测字符串s是否为有效字符串,即只包含字母和数字'''
formal = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
for i in s:
if i not in formal:
return False
return True
import sys
res_t,res_f = [],[]
while 1:
try:
s = input().strip()
if s == '':
break
if check(s):
if s not in res_t: # 去重
res_t.append(s)
else:
res_f.append(s)
except:
pass
print(' '.join(res_t))
print(' '.join(res_f))
for i,j in enumerate(res_t):
res_t[i] = left_move(j, 10)
print(' '.join(res_t))
print(' '.join(sorted(res_t)))