第一题
把给定的字符串(长度为4的倍数)转着圈的顺时针输出成一个正方形。中间的部分用空格填充。
如输入:
abcdefghijklmnop
会得到:
abcde
p f
o g
n h
mlkji
import sys
str = sys.stdin.readline().strip()
# str = 'abcdefghijklmnop'
n = len(str)
if n%4 !=0:
print('Error')
else:
l_line = int(n/4)
# print(str[:n/4])
middle = ''
for i in range (l_line-1):
line = str[n-(i+1)]
for j in range(l_line - 1):
line += ' '
line += str[l_line + (i + 1)]
middle += line
middle += '\n'
last = ''
for i in range(l_line+1):
last += str[n-i-l_line]
print(str[0:l_line+1]+'\n'+middle + last)
# print(str[5])
第二题
输入一个由是数字组成的字符串,把他们拆开成两个合法数字(1010拆成1和010不行)。
也可以在他们中间加小数点,变成合法的小数。
比如输入:
1234
输出:
[[1,23], [12, 3],[1,2.3], [1.2, 3]]
这道题的情况挺复杂的,我没有做对。但还是把代码放上来:
import sys
# import math
s = sys.stdin.readline().strip()
# s = '00011'
n=len(s)
out = []
# n1 = []
# n2 = []
out=[]
out1=[]
for i in range(n-1):
n1 = s[0:i+1]
n2 = s[i+1:n]
if str(int(n1))==n1 and str(int(n2))==n2:
out.append([int(n1), int(n2)])
out1.append([n1, n2])
else:
for i in range(n - 1):
n11 = s[0:i + 1]
n21 = s[i + 1:n]
if int(n11)!=0 and int(n21)!=0:
out.append([int(n11), int(n21)])
out1.append([n11, n21])
for j in range(len(out1)):
for k in range(2):
a = out1[j][k]
# print(a)
for w in range(len(a)-1):
# if a[len(a)-1] !=0:
n = a[0:len(a)-w-1]+ '.'+a[len(a)-w-1:len(a)]
# if math.floor(n) != int(n):
if k == 1:
out.append([out[j][0], float(n)])
# print(out)
if k == 0:
out.append([float(n), out[j][1]])
print(out)
c = []
for i in range(len(out)): # 去掉重复坐标
c.append((out[i][0], out[i][1]))
c = list(set(c))
print(c)
out = []
for i in range(len(c)):
out.append([c[i][0], c[i][1]])
print(out)
第三题
找出指定的那个人和谁关系最好,具体表现为共同好友最多。
输入的第一行的两个数分别是总共多少人,指定的那个人的位置。
从第二行开始依次为每个人的好友(用数字表示)。
因此输入:
5 0
1 2 3
3 4
3 4
3 4
1 2 3会得到:
4
import sys
[n, deter] = map(int, sys.stdin.readline().strip().split(' '))
friend = []
length = []
for i in range(n):
# print(sys.stdin.readline().strip().split(' '))
friend.append(sys.stdin.readline().strip().split(' '))
for i in range(n):
if i == deter:
length.append(-1)
else:
incommon = set(friend[i]) & set(friend[deter]) # 求这两个集合的交集
length.append(len(incommon))
# print(length)
big = 0
for i in range(n):
if length[i] > length[big]:
big = i
print(big)
第四题没有看……唉……