python 运行最长公共子序列算法报错

python 运行最长公共子序列算法报错 invalid syntax.Perhaps you forgot a comma?

class Solution:
    def longgestquence(self,s1,s2):
        len1=len(s1)
        len2=len(s2)
        array=[[0]*(len2+1) for_in range(len1+1)]
        for i in range(1,len1+1):
            for j in range(1,len2+1):
                if s1[i-1]==s2[j-1]:
                    array[i][j]=array[i-1][j-1]+1
                else:
                    array[i][j]=max(array[i-1][j],array[i][j-1])
    return array[len1][len2]
invalid syntax.Perhaps you forgot a comma?
array=[[0]*(len2+1) for_in range(len1+1)] 此行语法报错,但找不到错在哪里

img

for _ in range()
下划线是一个变量,两边要用空格隔开

for _ in ,这里 _ 两边需要空格隔开


class Solution:
    def longgestquence(self,s1,s2):
        len1 = len(s1)
        len2 = len(s2)
        array = [[0]*(len2+1) for _ in range(len1+1)]
        for i in range(1,len1+1):
            for j in range(1,len2+1):
                if s1[i-1] == s2[j-1]:
                    array[i][j]=array[i-1][j-1]+1
                else:
                    array[i][j]=max(array[i-1][j],array[i][j-1])
        return array[len1][len2]

语法错误,_是变量,不能直接接着forin写,必须用空格隔开。
正确代码:

class Solution:
    def longgestquence(self,s1,s2):
        len1=len(s1)
        len2=len(s2)
        array=[[0]*(len2+1) for_in range(len1+1)]
        for i in range(1,len1+1):
            for j in range(1,len2+1):
                if s1[i-1]==s2[j-1]:
                    array[i][j]=array[i-1][j-1]+1
                else:
                    array[i][j]=max(array[i-1][j],array[i][j-1])
    return array[len1][len2]