版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
第一题
题目:小明是个强迫症卖家,有10000台设备,卖的均价要求最接近D元,输出卖出的台数N,总售价M
输入 0<D<10,精确到小数点后12位 ; 输出 M N
思路:
均价与D相接近,初始化M,N为1。然后计算均价M/N。
如果均价 > 幸运数D,则台数(分母)增加。
如果均价 <= 幸运数D,则总售价(分子)增加。
直到 M N 超出循环,其中取台数最小的一个
#coding=utf-8
import sys
D = float(sys.stdin.readline().strip())
n, m = 1, 1
# 正负无穷 float("inf"), float("-inf")
diff = float('inf')
while m < 100000 and n <= 10000:
if abs(m/n-D) < diff:
tmp_m, tmp_n = m, n
diff = abs(m/n-D)
if m/n-D > 0:
n += 1
elif m/n-D <= 0:
m += 1
print(tmp_m, tmp_n)
第二题
题目:输入三组旋转字符串,每组分别为源和目标,判断源在旋转一定次数后,是否可以包含目标。包含返回1,否则返回0
输入 'AABCD' 'CDAA' \ 'AABCD' 'ABCD' \ 'AABCD' 'CFS' ; 输出 110
思路:将源字符串与自身拼接,这样就可以得到所有的旋转字符串。然后判断目标是否在源的旋转钟
#coding=utf-8
import sys
if __name__ == "__main__":
ans = ''
for i in range(3):
a = sys.stdin.readline().strip()
b = sys.stdin.readline().strip()
# 自身合并
c = a+a
if len(b) > len(a):
ans = ans + '0'
else:
# 直接查询是否在当前旋转
if b in c:
ans = ans + '1'
else:
ans = ans + '0'
print(ans)
第三题
题目:消除有向图的环,返回最小长度的边
思路:直接返回'#',找不到边。AC达到10%