题目:
分析:
第一道开涮的回溯分析题目,刚开始想的还有些不明白,不过借助一颗二叉树来想,真是妙极了。
左,代表换,右,代表不换,第几层,表示第几个字符。都在最后输出即可。
代码:
vector<string> v;
void f(string s,int c)
{//该第c个位置了
if(s.length()==c)
{
v.push_back(s);
return ;
}
f(s,c+1);
if(s[c]>='0'&&s[c]<='9') return;
s[c]^=32;
f(s,c+1);
}
int main()
{
string s="a1b2";
f(s,0);
cout<<v.size();
}