疫情期间在面试某公司的远程职位时,获得的一份笔试题,需要的可以看看
第一题: 翻转字符串
题目:
请写一个程序,用于翻转函数中的字符串
# 举例
f("junyiacademy") == "ymedacaiynuj"
f("flipped class room is important") == "deppilf ssalc moor si tnatropmi"
答:
# 字符串翻转
def f(String):
# 去除前后空格
String = String.strip(" ")
# 判断是否存在空格
if String.find(" ") >= 0:
# 根据空格分词
StringList = String.split(" ")
# 清除里面的字符串
String = ""
for i in StringList:
i = i[::-1]
String = String + i + " "
# 去除前后空格
String = String.strip(" ")
else:
String = String[::-1]
return String
if __name__ == '__main__':
SS = f("You Are Money")
print(SS)
运行结果:
D:\Python\python.exe D:/Code/PythonCode/Interview/JunYi/01.py
uoY erA yenoM
Process finished with exit code 0
第二题: 倍数去除
题目:
请写一个程序,Input 获取的一个数字,Output 是从1到Input这个数字,扣除掉所有3的
倍数以及 5 的倍数,但是需要保留同時是 3和 5 的倍数的总数个数
# 举例
Input:15
所有的数字是:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
其中 3, 6, 9, 12 被去除;5, 10 被去除;但是15被保留
所以剩下来的数字是1,2,4,7,8,11,13,14,15,因此
Output:9
答:
def cipher(Digital):
Count = 0
for i in range(1, Digital + 1):
# 判断如果i是3和5的倍数则保留
if i % 3 == 0 and i % 5 == 0:
Count = Count + 1
elif i % 3 == 0 or i % 5 == 0:
pass
else:
Count = Count + 1
return Count
if __name__ == '__main__':
# 等待用户输入数据
Number = int(input("Input:"))
result = cipher(Number)
print("OutPut:", result)
运行结果:
D:\Python\python.exe D:/Code/PythonCode/Interview/JunYi/02.py
Input:15
OutPut: 9
Process finished with exit code 0
第三题: 圆珠笔问题
题目:
房间里有三个袋子,一个只装铅笔,一个只装圆珠笔,第三个有铅笔也有圆珠笔。袋子是不透明的,单从袋子的外表上看不出任何差异,你不知道哪个袋子装什麽。除了袋子上各贴了一个标示("铅笔"、"圆珠笔"、"混和"),且标示都是错的。
(e.g. 标示铅笔的袋子可能是混和的或是只装圆珠笔)。
你只能选一个袋子,拿出里面一支笔,看是铅笔还是圆珠笔,然后你要推论出这三个袋子分别的情况。请列出你的作法,以及解释为什么这样可以找到答案。
答:
Ps: 个人觉得,是在考全排序问题
from itertools import permutations
# 使用全排列解决
# 定义字符集
str_list = ["铅笔", "混合笔", "圆珠笔"]
result_list = permutations(str_list)
for i in result_list:
for j in i:
print(j, end=" ")
print()
运行结果:
D:\Python\python.exe D:/Code/PythonCode/Interview/JunYi/03.py
铅笔 混合笔 圆珠笔
铅笔 圆珠笔 混合笔
混合笔 铅笔 圆珠笔
混合笔 圆珠笔 铅笔
圆珠笔 铅笔 混合笔
圆珠笔 混合笔 铅笔
Process finished with exit code 0
第四题: 钱去哪了?
题目:
有三个人一起到迪士尼游玩,中午肚子饿了,去餐厅点了一份现在最夯的冰雪奇缘套餐,要价900元,付钱后,服务生发现今天套餐特价,只要750元,因此服务生应该退还150元给这三个人,但是这位服务生一时鬼迷心窍,决定暗杆60元,只退了 90 元给这三个游客。
那么: 三人各出300元-服务生还给他们一人30元=三人各出270元, 270元×3人+服务生私吞的60元=810+60= 870!?怎麽不是 900 元呢?还有30 元去哪了呢?请用叙述的方式,尽量清楚解释问题出在哪里.
答:
Ps: 这道题主要考的是逻辑思维,不用写程序
注:将这三个好朋友看作为一个整体,也就是顾客,先把所谓的AA制度抛到一边去
1.顾客点了一份冰雪奇缘双人套餐,消费900元
2.服务生发现套餐特价,只要750元,但是已经收了900元,应该退还150元(900-750=150)
3.服务生决定暗杆60元,退还了90元(150-60=90)
我们在来加一下前面的消费,就可以算出来了
90+60+750=900
注,将这三个人看作为一个整体,就可以看出这道题问题的逻辑错误出现在哪里了
当然,你还可以这样计算
1.这三个朋友每人出了300元,也就是900元(300*3=900)
2.服务员退回90元之后,每人分得了30元,也就是一共消费了810元 ((300-30) * 3 = 810)
3.用消费810元,减去吃饭的750,加上服务元暗杆的60元,结果等于0元(810-750+60 = 0)
文章评论