题目内容:
给定一个已按照升序排列的字符串number_string,请你从中找出两个数满足相加之和等于目标数 target。
函数应该以长度为 2 的整数列表的形式返回这两个数的下标值。返回的下标从1开始计数,所以答案数组应当满足 1 <= index[0] < index[1] <=len(numbers)。
注意:每个输入只对应唯一的答案,而且你不可以重复使用相同的元素(返回的两个下标不可以相同)。
注意:你应该需要将第一个输入的字符串转换成数值类型的列表
输入格式:
第一行是字符串,按照提示使用input输入
第二行是需要求和的目标值
输出格式:
长度为2的列表
输入样例:
0,1,2,3,4,5
8
输出样例:
[4,6]
(解释:3+5=8,这两个数字对应的索引值是4和6。虽然4+4=8,但是只有一个4,不能重复使用)
解决思路:
先使用split函数用‘,’将输入的字符串切片成列表,再利用map函数将列表内元素转换为int型
def twosum(number_string,target): lst=number_string.split(',') lst=list(map(int,lst)) target=int(target) for i in lst: a=target-i if a in lst and lst.index(a)!=lst.index(i): return [lst.index(i)+1,lst.index(a)+1] print(twosum(input(), int(input())))# 此处输入由系统自动完成不需要自己输入
map函数使用:map(type,列表名)
split函数使用:字符串.split(' ')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)