快手
第一题 反转输出单词序列
st = list(input().strip().split()) if len(st) == 1: print('.') elif len(st) == 2: print(st[0]+st[-1]) else: stack = [] lst = st[-1] for i in range(len(st)-1): stack.append(st[i]) stack = stack[::-1] for i in stack[:-1]: print(i, end=' ') print(stack[-1]+lst)只A了80%,不知道哪里没考虑到
第二题 最小的移动距离
strA = input().strip() strB = input().strip() l1 = len(strA) l2 = len(strB) dp = [[0 for j in range(l2+1)] for i in range(l1+1)] for i in range(l1+1): for j in range(l2+1): if i == 0: dp[i][j] = j elif j == 0: dp[i][j] = i elif strA[i-1] == strB[j-1]: dp[i][j] = dp[i-1][j-1] else: dp[i][j] = 1+min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1]) print(dp[l1][l2])第三题 质数统计
n = int(input()) def IsZS(num): for i in range(2, int(num ** 0.5)): cnt = 0 if num % i == 0: cnt += 1 IsZS(int(num/i)) break return cnt res = 0 for i in range(2, n+1): res += IsZS(i) print(res)第三题没A,后面没时间了,求大佬代码
第四题 合法数组
shudu = [] for i in range(9): temp = [] t = input() # print(len(t)) for i in range(len(t)): temp.append(str(t[i])) # print(temp) shudu.append(temp) # print(shudu) for i in range(9): for j in range(9): if shudu[i][j] == 'X': shudu[i][j] = 0 for i in range(9): for j in range(9): if shudu[i][j] != 0: for c in range(9): if c != j and shudu[i][j] == shudu[i][c]: print(False) for r in range(9): if r != i and shudu[i][j] == shudu[r][j]: print(False) for r in range((i//3)*3, (i//3)*3+3): for c in range((j//3)*3, (j//3)*3+3): if r != i and c != j and shudu[i][j] == shudu[r][c]: print(False) print(True)第四题 本地是对地, 提交时一直不对,现在才发现print(shudu)没注释掉,不知道是不是这个原因,哭鸟