如果您正在寻找创建单个随机单词,请按照以下步骤操作:
- 填充字符数组:char[] arr = { 'a', 'b', ... , 'z'}
- 获取表示字符串大小的随机整数。
- 初始化一个空字符串s
- 从 0 迭代到绘制的长度,在[0,arr.length)let it be范围内绘制一个数字x,然后附加arr[x]到 strings。
如果您正在寻找所有可能性,那么您正在寻找所有组合,我认为最简单的方法是使用递归。这个想法是“猜测”第一个字符,并在字符串的后缀上运行递归 - 对第一个字符的所有第一个可能性重复此操作,你会得到所有组合。
伪代码:
getCombinations(set,idx,length,current):
  if (idx == length):
    set.add(copy(current))
    return
  for each char c:
    current[idx] = c //setting the next char
    getCombinations(set,idx+1,length,current) //invoking recursively on smaller range
调用getCombinations([],0,length,arr)where[]是一个空集,它将保存结果,length是生成的组合的长度,并且arr是一个空数组。
要获得更小的组合,length您可以在过程中添加子字符串或使用更小的调用length。
注意组合的数量在词的长度上是指数级的,所以会消耗很多时间。