0

假设我为每个需要添加所有数字的字符设置了字符“A”和“B”...

               ""
         /            \   
      "A"             "B"
    /  |  \        /  |  \
   /   |   \      /   |   \
"A1" "A2" "A3"  "B1" "B2" "B3"

怎么做?

我试过了,但我没有得到正确的递归想法。

通常我有一组字符 [A,B,C,...z] 每个都与其他一组数字 [0,...9] 置换

递归如何解决答案?[或回溯?]我无法获得想法。如何处理问题并解决问题?

或者简单地保留它,我们有一个数组 []={A,D} 我们有偏移量 [0,1,2]

我们需要用字符数组置换字符串,但还要添加偏移量

A-- D+0   AD
A-- D+1   AE
A-- D+2   AF
B...D+0   BD
B...D+1   BE
B...D+2   BF

这仅适用于 2 个字符。

4

2 回答 2

0

你需要找到两组的笛卡尔积。(你的数字和字符)。使用 char 数组来保存输入和输出集,

于 2013-07-06T14:38:52.950 回答
0

您必须为每个偏移量递归地解决它。

fun(int offset,int i){
  if(offset==0)
     then print the array

  for(;i<n;i++){
    a[i]++;
    fun(offset-1,i+1);
    a[i]--;
  }
}

这里'n'是a具有给定字符的数组的长度。打印每个偏移量的所有可能数组的伪代码。您必须为每个偏移量调用上述数组。

于 2013-07-06T14:50:38.953 回答