20190916快手,英伟达

快手20190916

1.

arr = list(map(str, input().strip().split()))
if arr[-1]=='.':
    arr.pop()
else:
    arr[-1]=arr[-1][:-1]
arr=arr[::-1]
print(' '.join(arr),end='.\n')

2.

stra = str(input().strip())
strb = str(input().strip())
n = len(stra)
m = len(strb)
if n * m == 0:
    print(n+m)
else:
    d = [ [0] * (m + 1) for x in range(n + 1)]
    for i in range(n + 1):
        d[i][0] = i
    for j in range(m + 1):
        d[0][j] = j
    for i in range(1, n + 1):
        for j in range(1, m + 1):
            left = d[i - 1][j] + 1
            down = d[i][j - 1] + 1
            left_down = d[i - 1][j - 1] 
            if stra[i - 1] != strb[j - 1]:
                left_down += 1
            d[i][j] = min(left, down, left_down)
    print(d[n][m])

3.

筛素数法 

n = int(input().strip())
shuzu=[i for i in range(n+1)]
sum1=0
for i in range(2,n+1):
    if shuzu[i]!=1:
        t=shuzu[i]
        shuzu[i]=shuzu[i]//shuzu[i]
        sum1=sum1+1
        for j in range(2*t,n+1,t):
            while shuzu[j]%t==0:
                shuzu[j]=shuzu[j]//t
                sum1=sum1+1
    #print(shuzu)
print(sum1)

4.

leetcode原题 

boar=[]
for i in range(9):
    stra = str(input().strip())
    boar.append(stra)
ans='true'
row = [{} for i in range(9)]
column = [{} for i in range(9)]
box = [{} for i in range(9)]
for i in range(9):
    for j in range(9):
        num = boar[i][j]
        if num != 'X':
            num = int(num)
            box_index = (i // 3 ) * 3 + j // 3
            row[i][num] = row[i].get(num, 0) + 1
            column[j][num] = column[j].get(num, 0) + 1
            box[box_index][num] = box[box_index].get(num, 0) + 1
            if row[i][num] > 1 or column[j][num] > 1 or box[box_index][num] > 1:
                ans='false'
print(ans)

英伟达20190916

1.实现矩阵乘法

如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。这个矩阵的每个元素是由下面的公式决定的:

C_{ij}=\sum_{k=1}^y A_{ik}B_{kj}

输入描述:

输入包含多组数据,每组数据包含:

第一行包含一个正整数x,代表第一个矩阵的行数,

第二行包含一个正整数y,代表第一个矩阵的列数和第二个矩阵的行数,

第三行包含一个正整数z,代表第二个矩阵的列数

之后x行,每行y个整数,代表第一个矩阵的值

之后y行,每行z个整数,代表第二个矩阵的值

输出描述:

对于每组输入数据,输出x行,每行z个整数,代表两个矩阵相乘的结果

分析:

题目有问题,样例有好几个,需要加一个while,导致没过,坑。。。

这种题目千万不能import numpy,那样会直接判错。

python实现矩阵乘法:

def matxMultiply(A, B):
    multiply = []
    result = [list(row) for row in zip(*B)]
    for Al in range(len(A)):
        row =[]
        for Bl in range(len(result)):
            num = 0   
            for Br in range(len(result[0])):
                num +=  A[Al][Br] * result[Bl][Br]
            row.append(num)
        multiply.append(row)
    return multiply
x = int(input().strip())
y = int(input().strip())
z = int(input().strip())
a=[]
b=[]
for i in range(x):
    arr = list(map(int, input().strip().split()))
    a.append(arr)
for i in range(y):
    arr = list(map(int, input().strip().split()))
    b.append(arr)
c = matxMultiply(a, b)
for sub in c:
    print(' '.join(map(str, sub)))

猜你喜欢

转载自blog.csdn.net/LXQ1071717521/article/details/101793757