请用python函数编写一段代码 求列表中和为n的整数对 本题要求实现一个函数pairSum(),带两个输入参数:一个值不重复的整数列表lst和一个整数n。输出列表中所有和为n的整数对的索引。 函数接口定义: pairSum(lst, n) lst是传入的整数列表,n为整数 裁判测试程序样例: # 请在这里填写答案 def main(): #输入一系列以逗号隔开的整数 lst = list(map(int,input().split(","))) #输入一个整数 n = int(input()) pairSum(lst, n) main() 输入样例: 7,8,5,3,4,6 11 输出样例: 在这里给出相应的输出。例如: 0 4 1 3 2 5
时间: 2024-01-17 14:03:18 浏览: 39
可以使用字典来记录每个元素的索引,然后遍历列表,对于每个元素,检查 n - num 是否在字典中,如果在,则找到了一对和为 n 的元素,将它们的索引添加到结果列表中。
下面是 Python 代码实现:
```python
def pairSum(lst, n):
d = {}
res = []
for i, num in enumerate(lst):
if n - num in d:
res.append(d[n - num])
res.append(i)
else:
d[num] = i
print(' '.join(map(str, res)))
```
在主函数中,读入列表和目标和,然后调用 pairSum 函数即可。
完整代码如下:
```python
def pairSum(lst, n):
d = {}
res = []
for i, num in enumerate(lst):
if n - num in d:
res.append(d[n - num])
res.append(i)
else:
d[num] = i
print(' '.join(map(str, res)))
def main():
lst = list(map(int, input().split(",")))
n = int(input())
pairSum(lst, n)
main()
```
输入样例:
```
7,8,5,3,4,6
11
```
输出样例:
```
0 4 1 3 2 5
```
阅读全文