|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Python 44讲 函数IV 动动手 0 看了小甲鱼思路,发现自己思维老是走远路
我的:
import random
def fy_shuffle(s,count):
n = 0
while count > n:
r = []
while len(s) > 0:
k = random.randint(1,len(s))
r.append(s[k-1])
s = s[:k-1]+s[k:]
s = "".join(r)
n += 1
print(f"第{n}次打乱后的结果:{s}")
return s
s = input("请输入需要打乱的序列:")
n = int(input("请输入需要打乱的次数:"))
print(f"最终结果是:{fy_shuffle(s,n)}")
小甲鱼的:
import random
def fy_shuffle(x, n=1):
for i in range(n):
target = list(x)
result = []
while target:
r = random.randint(0, len(target)-1) # 步骤2
result.append(target.pop(r)) # 步骤3
print(f"第{i+1}次打乱后的结果:{''.join(result)}")
return "".join(result)
x = input("请输入需要打乱的序列:")
n = int(input("请输入需要打乱的次数:"))
print(f"最终的结果是:{fy_shuffle(x, n)}")
没有细看你的代码 但是每个需求的实现都是多种多样的,慢慢的积累经验吧,逐渐自己也能有清晰的思路。另外,小甲鱼的代码似乎也并不完美,多次打乱时,并没有考虑到与上次打乱结果的关联性,相当于每次打乱都是重新开始打乱,然后最后一次最为结果,实际上只打乱了一次,加一行代码,让上次打乱的输出成为下次打乱的输入会更好一点
|
|