1.有变量name="--aleX leNb---",name前有2个“-”号,name后有3个“-”号。 移除name两边的“-”号,可使用表达式____空白1____; 统计name变量中字母“l”出现的次数,可使用表达式____空白2____; 从name中找到'N'对应的索引(如果找不到则返回-1),可使用表达式____空白3____; 从name中找到'N'对应的索引(如果找不到则会抛出异常),可使用表达式____空白4____; 如果想获得name的子串"ale",使用正向序号进行切片,可使用表达式____空白5____; -------------------------------------------------------------------------- 2.有列表lst=['alex', 'wusir', 'eric'] 计算列表的长度,可使用表达式____空白6____; 在列表lst中追加一个元素'seven',使用append方法,则语句为____空白7____; 利用下划线将列表中的所有元素拼接成alex_wusir_eric,使用join方法,则语句为____空白8____; -------------------------------------------------------------------------- 3.程序填空: dic={'k1':'v1', 'k2':'v2', 'k3':[11,22,33]} #循环输出所有的key for k in dic.keys(): print(k) #循环输出所有的value for v in ____空白9____: print(v) #循环输出所有的键-值对 for k,v in ____空白10____: print(k,v)
时间: 2023-08-15 16:45:13 浏览: 95
1.
空白1:name.strip('-')
空白2:name.count('l')
空白3:name.find('N')
空白4:name.index('N')
空白5:name[2:5]
2.
空白6:len(lst)
空白7:lst.append('seven')
空白8:'_'.join(lst)
3.
空白9:dic.values()
空白10:dic.items()
相关问题
动态规划--最长公共子序列问题
最长公共子序列问题(Longest Common Subsequence,简称LCS)是指在两个序列中找到一个最长的公共子序列,其中一个序列的所有元素按原序列中出现的顺序排列,而另一个序列中的元素则不要求按原序列中出现的顺序排列。
动态规划方法可以很好地解决LCS问题。设A和B是两个序列,LCS(A,B)表示A和B的最长公共子序列。则可以设计如下的状态转移方程:
当A和B的末尾元素相同时,LCS(A,B) = LCS(A-1,B-1) + 1。
当A和B的末尾元素不同时,LCS(A,B) = max(LCS(A-1,B), LCS(A,B-1))。
其中,LCS(A-1,B-1)表示A和B的末尾元素相同时的情况,LCS(A-1,B)表示A的最后一个元素不在最长公共子序列中,而B中的最后一个元素在最长公共子序列中的情况,LCS(A,B-1)表示B的最后一个元素不在最长公共子序列中,而A中的最后一个元素在最长公共子序列中的情况。
根据这个状态转移方程,可以使用动态规划算法来求解LCS问题。具体方法是,构建一个二维数组dp,其中dp[i][j]表示A前i个元素和B前j个元素的LCS。初始化dp[0][j]和dp[i][0]为0,然后按照上述状态转移方程进行递推,最终得到dp[lenA][lenB],其中lenA和lenB分别表示A和B的长度。dp[lenA][lenB]即为A和B的最长公共子序列的长度。要找到具体的最长公共子序列,可以从dp[lenA][lenB]开始,按照状态转移方程反向推导出每个元素,即可得到最长公共子序列。
LCS问题是动态规划算法的经典应用之一,时间复杂度为O(n*m),其中n和m分别为A和B的长度。
a,b=input().split() sum=0 lena=len(a) lenb=len(b) for x in range(lena) : sum+=int(a[lena-1-x])*pow(2,x) for x in range(lenb) : sum+=int(b[lenb-1-x])*pow(2,x) print(bin(sum)[2:])
这是一段 Python 代码,实现了将两个二进制数相加并输出结果的功能。具体来说,代码首先通过 `input().split()` 从标准输入中读取两个二进制数 `a` 和 `b`,然后计算它们的十进制表示之和 `sum`。这里使用了 `pow()` 函数来计算 $2^x$ 的值,从而将二进制数转换为十进制数。
最后,代码使用 `bin(sum)[2:]` 将十进制数 `sum` 转换为二进制数,并且去掉了二进制数前面的 '0b' 前缀。这个过程使用了 Python 中的字符串切片操作。最终输出的结果即为两个二进制数的和。
需要注意的是,该代码中存在语法错误。`sum=0` 和 `lena=len(a)` 之间应该有一个空格。另外,代码中的缩进不正确,需要进行修正。修正后的代码如下:
```python
a, b = input().split()
sum = 0
lena = len(a)
lenb = len(b)
for x in range(lena):
sum += int(a[lena-1-x]) * pow(2, x)
for x in range(lenb):
sum += int(b[lenb-1-x]) * pow(2, x)
print(bin(sum)[2:])
```