目录
#include <iostream>
#include <vector>
using namespace std;
void dfs(string s,int n,vector<string>& res){
if(s.size()==n){
res.push_back(s);
return;
}
dfs(s+"0",n,res);
dfs(s+"1",n,res);
}
int main(){
int n;
cin>>n;
vector<string> res;
dfs("",n,res);
for(int i=0;i<res.size();i++) cout<<res[i]<<endl;
return 0;
}
LeetCode3221 生成不含相邻零的二进制字符串
class Solution {
public:
vector<string> res;
void dfs(string s,int n){
if(s.size()==n){
res.push_back(s);
return;
}
if(s.empty()||(s.empty()==false&&s[s.size()-1]=='1')) dfs(s+'0',n);//字符串为空或前一个字符为1时添加0
dfs(s+'1',n);//所有情况都可添加1
}
vector<string> validStrings(int n) {
dfs("",n);
return res;
}
};