我正在寻找一种好的(易于实现、直观等)递归方法来生成长度为 n
的所有二进制字符串。 , 其中1 <= n <= 35
.
我很欣赏有关伪代码算法的想法(没有特定于语言的技巧)。
LE:好吧,我的上限确实过高了。我的意图是避免使用 1
中计数器的二进制表示的解决方案。至 1 << n
.
最佳答案
这是 C++ 中的递归示例。
vector<string> answer;
void getStrings( string s, int digitsLeft )
{
if( digitsLeft == 0 ) // the length of string is n
answer.push_back( s );
else
{
getStrings( s + "0", digitsLeft - 1 );
getStrings( s + "1", digitsLeft - 1 );
}
}
getStrings( "", n ); // initial call
关于algorithm - 递归生成所有长度为 n 的二进制字符串的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14876564/