C#程序通过添加'找不到可以通过单词生成的单词.'在人物之间?

vis*_*hnu 2 .net c# algorithm visual-studio-2008

我在聊天室里问了这个问题.但没有答案,所以我在这里发布问题.

问题是,例如,取abcd这个词

它有4个字符.通过添加'.'在字符之间你可以把它写成abcd

规则
只能在字符之间使用1个点
可以在单词
Edit中使用多个点:可以有没有'的字符.在他们之间.例如(ab或abcd)
不能在单词的开头或结尾使用点,即.abcd或abcd.是假的

一些答案
abcd
a.bcd
ab.cd
abc.d
abcd
a.bc.d
ab.cd
abc.d

有多少单词可以制作.如何编写程序在c#中找到它?

编辑 如何显示每个可能的单词?

Jon*_*eet 8

你真的不需要为此编写程序.

对于n个字符的单词,有n-1个位置,其中可以有一个点(即每对字符之间).每个位置要么有点,要么没有.

因此,有2 n-1个可能的单词.

如果你真的想写一个C#程序来显示这个:

using System;

class Test
{
    static void Main(string[] args)
    {
        // Argument validation left as an exercise for the reader
        string word = args[0];
        Console.WriteLine("Word {0} has {1} possibilities",
                          word, Math.Pow(2, word.Length - 1));
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:请注意,这假定原始单词(没有点)仍然计数.如果您不想计算,请从结果中减去1.

编辑:我已经改变了计算使用,Math.Pow以便:

  • 它处理超过33个字母的单词(当然,达到另一个限制)
  • 它更清楚