猿辅导二面编程题
1.扑克牌顺子
LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张牌就可以变成“1,2,3,4,5”(大小王分别看作2和4),“So Lucky!”。LL决定去买体育彩票啦。 现在,要求你使用这幅牌模拟上面的过程,然后告诉我们LL的运气如何, 如果牌能组成顺子就输出true,否则就输出false。为了方便起见,你可以认为大小王是0。
2.给定一个字符串数组,实现两个函数:
函数 fun1: 将数组转化为一个字符串,字符串长度和内容不做限制函数 fun2: 只能有一个字符串参数,不能利用额外的数据信息,将上面函数输出的字符串还原为数组,内容和第一个函数的输入一样
说明:字符串数组和和输出的字符串只能包含 ascii 中的字符
输入示例:
fun1:
["ab,03", "1xyz", "-ddd" ] -> “xxxxxxx...”
fun2:
“xxxxxxx...” -> ["ab,03", "1xyz", "-ddd" ]
arr = ['abc', 'xyz cdf', 'ei akdl']
def fun1(arr):
res = ""
for ele in arr:
res += str(len(ele))+" "+ele+" "
return res[:-1]
def fun2(s):
i = 0
step = 0
res = []
while i < len(s):
if s[i].isdigit():
step = step*10 + int(s[i])
i += 1
else:
res.append(s[i+1:i + step + 1])
i += step+2
step = 0
return res
string = fun1(arr)
print(string)
print(fun2(string))
当时怎么没想到呢。