我对编码比较陌生,我想做一个测试程序,它可以接受输入,并输出为一个anagram。但字谜不可能只是一堆字母,它必须是一个可以理解的“单词”(即,如果我加入了“恐龙”,我希望得到类似“nisadoru”的东西作为回报,而不是类似“dsrunsia”的东西)如果再往前走一步不算太长的话,我还想让程序在输出中添加一个额外的字母(即,如果我输入‘恐龙’,我可以收到‘nisadorux’)。
我不是在寻找一个额外的字母被添加到这个词的选择,我想我选择的字母被添加。如果重要的话,字母是x。所以所有的anagram都会包含一个额外的x。
我努力寻找,但没有找到任何有用的帮助。我没有任何代码可以关闭,但对于那些说我不会从简单的代码中学习的人来说,我更喜欢查看一个完整的部分并对其进行解构,或者找出每件事情是如何工作的,而不是试图将各种东西组合成一个测试。
最佳答案
将字母数组分成两个数组,一个只有元音[a,e,i,o,u,y]
而另一个是所有的,对于dinosaur
您将收到[d,n,r,s] - [a,i,o,u]
然后,要生成一个anagram,为数组中仍然存在的字母组合数抛出一个随机数,选择一个对应的字母,将其添加到构造中的anagram中,然后从数组中移除。假设您的随机抛出6(基于0),第一个数组的长度为4,从第二个数组的位置2(=6-4)>'o'中获取。下一个随机(7)抛出2,从第一个数组中取出'r',现在我们的anagram有or
,数组有[d,n,s] - [a,i,u]
。关于元音和辅音的互换,要记下你的字母最后被唤醒的是哪一个数组,如果一个数组中有两个连续的take,那么从另一个数组中(随机)抽取一个字母,而不是从一组完整的剩余字母中抽取。
现在,你必须自己将其编码到你的程序中。