香水的秘密
香水提炼自各种花香,给订花的集合F,如何列出所有可以制造的香水?
#include "pch.h"
#include <iostream>
#include <set>
std::set<std::string> GetWaters(std::set<std::string> flowers) {
if (flowers.size() == 1) {
std::set<std::string> ret{ *flowers.begin() };
return ret;
}
else {
auto begin = *flowers.begin();
flowers.erase(flowers.begin());
auto original = GetWaters(flowers);
auto ret(original);
ret.insert(begin);
for (auto& it : original) {
ret.insert(begin + it);
}
return ret;
}
}
int main()
{
std::set<std::string> flowers{ "1", "2", "3", "4"};
auto ret = GetWaters(flowers);
return 0;
}
