python之有序数组内的两数之和

python之有序数组内的两数之和,第1张

python之有序数组内的两数之和

题目内容:

给定一个已按照升序排列的字符串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(' ')

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3973787.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存