Я пишу функцию, которая объединяет различные числа строк в зависимости от их длины.Конкатенация различных шаблонов строки
Вот некоторые C++, как псевдо-код, что я сейчас делаю:
string foo(size_t maxLength)
{
string a, b, c, d, e, ret;
//...assign them
if(a.size() + b.size() + c.size() + d.size() + e.size() <= maxLength)
{
ret = a + b + c + d + e;
}
else if(a.size() + c.size() + d.size() + e.size() <= maxLength)
{
LOG << "B was removed.";
ret = a + c + d + e;
}
else if(a.size() + b.size() + c.size() + d.size() <= maxLength)
{
LOG << "E was removed"l
ret = a + b + c + d;
}
//... a large amount of code like the above
return ret;
}
Есть хороший способ очистить это?
Спасибо.
Как вы решаете, какой из них удаляется, если он не подходит maxLength? – quantumSoup
@quantumSoup: Он основан на произвольных правилах, которые я не могу контролировать и которые могут измениться в будущем. – Jon
Также обратите внимание, что это немного похоже на проблему Knapsack, которая является NP-полной (другими словами, решение будет неэффективным) – quantumSoup