#261、在一个给定的数组nums中,总是存在一个最大元素 。
#查找数组中的最大元素是否至少是数组中每个其他数字的两倍。
#如果是,则返回最大元素的索引,否则返回-1。
def is_double_max_num(l):
max_num=max(l) #最大元素
max_num_index=l.index(max_num)
l.remove(max_num) #将最大元素从列表中删除
for num in l:
if max_num<num*2:
return -1
return max_num_index
print(is_double_max_num([3, 6, 1, 0]))
print(is_double_max_num([1, 2, 3, 4]))
#262、给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),
#返回其最大和。
def max_sum_sub_arr(l):
sub_arr=[]
for i in range(len(l)):
for j in range(len(l)-i):
sub_arr.append(l[i:i+j+1])
print("全部子数组为",sub_arr)
result=(sorted(sub_arr,key=sum))[-1]
print("最大和的连续子数组为",result)
return sum(result)
print(max_sum_sub_arr( [-2,1,-3,4,-1,2,1,-5,4]))
#263、给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。
#找出那个只出现了一次的元素。
def find_one_time_ele(l):
for i in l:
if l.count(i)==1:
return i
print(find_one_time_ele([2,2,3,2]))
#264、给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),
#可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数
l=[1,3,4,2,2]
for i in l:
if l.count(i)>1:
result=i
print(result)
#遍历列表,把每个元素加入字典,如果加入后字典长度没有加1的话,则返回元素
l=[1,3,4,2,2]
d={}
for i in l:
d_len=len(d)
d[i]=1
if len(d)!=d_len+1:
print(i)
#264、给定一组唯一的单词, 找出所有不同的索引对(i, j),使得列表中的两个单词,
#words[i] + words[j] ,可拼接成回文串。
#words_list=["abcd","dcba","lls","s","sssll"]
words_list=["bat","tab","cat"]
result=[]
for i in range(len(words_list)):
for j in range(len(words_list)):
word=words_list[i]+words_list[j]
if word[:]==word[::-1]:
result.append([i,j])
print(result)
#265、文件过滤,显式一个文件的所有行,忽略(#)开头的行
with open("d:\\2019\\1.txt") as fp:
for line in fp:
if line[0]!="#":
print(line)
#266、文件访问,提示输入数字N和文件F,然后显式文件F的前N行
try:
F=input("请输入文件路径:")
N=int(input("请输入需要显示的行数:"))
with open(F) as fp:
lines=fp.readlines()
for i in range(len(lines)):
if i==N:
break
else:
print(lines[i])
except Exception as e:
print(e)
#267、文件信息,提示输入一个文件名,然后显式这个文本文件的总行数
try:
F=input("请输入文件路径:")
with open(F) as fp:
lines=fp.readlines()
print(len(lines))
except Exception as e:
print(e)
#268、写一个逐页显示文本文件的程序。
#提示输入一个文件名,每次显示文本文件的25行,暂停并向用户提示“按任意键继续”,按键后继续执行
n = 0
with open("d:\\2019\\1.txt") as file_obj:
for line in file_obj:
n += 1
if n <= 25:
print(line)
else:
ins = input("请按任意键继续.")
if ins is not None:
n = 0