本文整理了几道之前面试中遇到的题目,以便后期复习查看。
1.统计数组中数字出现次数,如果只出现一次,输出TRUE,否则输出FALSE
#第一种:列表中的数
list1 = list(map(int, input().split())) #输入一个数组
list2 = set(list1) #去重
for i in list2: #遍历
counti = list1.count(i) #统计数字重复出现的次数
if counti==1:
print(i,'true')
else:
print(i,'false')
#第二种:字符串中的数
stri = input()
seti = set(stri)
for i in seti:
counti = stri.count(i)
if counti == 1:
print(i,'true')
else:
print(i,'false')
2.统计一个英语句子中单词的平均长度
jvzi=input().strip().split() #输入一个英文句子
suml=0 #用一个变量存储句子中所有单词长度之和
for i in range(len(jvzi)):
suml += len(jvzi[i])
avg = suml/len(jvzi) #每个单词平均长度=所有单词长度之和/单词个数
print(avg)
3.航天器支柱最大太阳能板面积问题
题目描述:给航天器一侧加装长方形或正方形的太阳能板(图中的红色斜线区域),需要先安装两个支柱(图中的黑色竖条),再在支柱的中间部分固定太阳能板。但航天器不同位置的支柱长度不同,太阳能板的安装面积受限于最短一侧的那根支柱长度。现提供一组整形数组的支柱高度数据,假设每根支柱间距离相等为1个单位长度,计算如何选择两根支柱可以使太阳能板的面积最大。
如图:输入10,9,8,7,6,5,4,3,2,1,输出最大面积25
h=list(map(int,input().split())) #用列表存储输入一组数,每个数代表每根柱子高度
max_area=0 #定义一个变量存储最大面积
for i in range(len(h)):
for j in range(i+1,len(h)):
area = min(h[i],h[j])*(j-i) #面积=两根柱子间最短的那一根的高度*两根柱子间的距离
if max_area<=area: #比较出最大面积
max_area=area
else:
max_area=max_area
print(max_area)