正如标题所谨慎建议的那样,您的任务是使一个单词的淡入淡出动画变成真正的第二个单词。
您可能会问这个“淡入淡出动画” 到底是什么?
要制作壮观的(非常糟糕的)淡入淡出动画,请使用两个仅包含可打印ASCII字符的字符串。首先打印起始字符串(两个中的第一个)。然后,您随机选择原始单词中的一个字符,然后将其更改为要为其设置动画的单词中的相应字符。当单词的长度不相等时,您必须用空格垫他们。
您将继续执行此操作,直到所有字符都被更改为止,但是您将不会多次更改某个索引处的字符。这是一个示例I / O:
Hey -> Peeps
Hey # original string
Hey s # replace char at index 4
Hey s # replace char at index 1
Pey s # replace char at index 0
Pee s # replace char at index 2
Peeps # replace char at index 3
您必须编写一个函数或完整程序来更改字母,然后以一秒为增量打印新字符串。输入格式宽松,但输出格式严格。
这是代码高尔夫球,因此以字节为单位的最短代码获胜。
一些测试用例(表格:)init -> final
:
Stringy -> Blingy
Banana -> Republic
United -> States
Make America -> Tissue box
I like walls -> I have small hands
Hello, -> world!
Python 2中的参考实现:
import random
import time
def F(c,f):
print c # before we do stuff
if len(c)>len(f):f+=" "*(len(c)-len(f)) # add padding part 1
if len(f)>len(c):c+=" "*(len(f)-len(c)) # add padding part 2
c, f = list(c), list(f)
ai = [i for i in range(len(c))] # a list for keeping track
while len(ai) > 0: # of available indices
time.sleep(1) # 1 second pause...
i = ai.pop(random.randint(0,len(ai)-1)) # get a random index and remove
c[i] = f[i] # it from the list
print ''.join(c) # print the new string