阿里笔试 0921
6个单选 6个多选 3个编程
#1 AC100 至少需要标记的字符串。 有点取巧,刚好 r e d逆序排序后满足题意。
题目: 一个仅有r e d三种字符组成的字符串,标记一些位置上的字符,按自己的喜好随意打乱顺序,最终所有的r在前面,e在中间,d在后面,问至少需要标记多少个字符?
例如: rdee 输出 2
string = input() ls = list(string) l2 = sorted(ls,reversed=True) count = 0 for i in range(len(ls)): if ls[i] != l2[i]: count +=1 print(count)#2水果装盘 AC 100 数学逻辑题
题目:a个桃子,b个苹果、c个雪梨。她将这些水果装到篮子t里,每个篮子刚好装15个,一个篮子最少装4个桃子、3个苹果、2个雪梨。问最多使用多少个篮子?
例如:
2
6 5 5
20 6 4
输出
1
2
t = input() for i in range(t): a,b,c = list(map(int,input().split(' '))) print(int(min(min(min((a+b+c)/15),a/4),b/3),c/2))#3字符好串 AC20 下面是偷分代码
题目:当且仅当该字符串恰好有一个长度不小于2的回文子串,称好串。 长度n且仅由r e d三个组成的好串有多少?
n = int(input()) if n<=1: print(0) elif n==2: print(3) elif n==3: print(18) elif n==4: print(30)我的想法是 便利出长度n时所有字符串的情况, 判断去最长回文子串的长度,遍历,长度大于等于2 count+=1 输出count ,时间不够,写了一半,换偷分了,选择花的时间有点多。