文章目录
一、⽐较版本号,给⼀个[“2.1.0”, “1.5”, “2”, “1.1.999.1.2.3”, “0.10.0”] 要求 从⼩到⼤排序
代码如下(示例):
def comprare_version(x1,x2):
'''
自定义比较规则,比较版本号的大小
:param x1:
:param x2:
:return:
'''
#x1,x2代表中的每一个字符串(例如:“2.1.0”)
s1 = [int(x) for x in x1.split('.')]
s2 = [int(x) for x in x2.split('.')]
for x ,y in zip(s1,s2):
if x<y:
return -1
elif x>y:
return 1
if len(s1)>len(s2):
return 1
elif len(s1)<len(s2):
return -1
return 0
def selector_sort(versions):
for i in range(len(versions)):
min_index=i
for j in range(i+1,len(versions)):
#调用自定义比较规则
if comprare_version(versions[min_index],versions[j])>0:
min_index=j
versions[i],versions[min_index]=versions[min_index],versions[i]
#调用
if __name__ == '__main__':
a=["2.1.0", "1.5", "2", "1.1.999.1.2.3", "0.10.0"]
selector_sort(a)
print(a)
二、从字符串⾥提取单词,例如”my name is cc“,将单词放到列表⾥,不要⽤ split ⽅法
代码如下(示例):
#方法1:遍历,遍历等于空,就把开始下标和结束下标,记录,就是一个完整的单词,然后赋值到空[],最后打印
def demo1(nums):
l=len(nums)
b=[]
x = 0
y = 0
for i in range(0,l):
if nums[i] ==' ':
y=i
b.append(nums[x:y])
x=i+1
b.append(nums[x:l])
print(b)
demo1("my name is cc")
三.给定⼀个整数数组 nums 和⼀个整数⽬标值 target,请你在该数组中找出 和为⽬标值target 的那 两个 整数,并返回它们的数组下标。如 nums = [2,7,11,15], target = 9输出:[0,1]⽤两种⽅法实现
代码如下(示例):
#方法1:双重遍历,相加等于target,将下标存在【】里,最后打印
def demo(nums,target):
l=len(nums)
a=[]
for i in range(0,l-1):
for j in range(i+1,l):
if nums[i]+nums[j]==target:
a.append(i)
a.append(j)
print(a)
demo([2,7,11,15],9)
#方法2:两个数相减,得到的结果是否在list中,是就打印
def demo2(nums,target):
l=len(nums)
a=[]
for i in range(0,l-1):
b=target-nums[i]
if b in nums[i+1:]:
a.append(i)
a.append(nums.index(b))
break
print(a)
demo2([2,7,11,15],9)