如何使用数字来换句字符串?

时间:2013-07-06 14:16:06

标签: c++ string combinations

假设我为每个角色添加了'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个字符。

2 个答案:

答案 0 :(得分:0)

你需要找到两组的cartesian product。(你的号码和字符)。使用char数组来保存输入和输出集,

答案 1 :(得分: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的长度。伪代码,用于为每个偏移打印所有可能的数组。你必须为每个偏移量调用上面的数组。