栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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(' ')

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/331501.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号