我正在写一个函数,它根据字符串的长度连接不同数量的字符串。串联字符串的不同模式
下面是一些类似于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 2010-08-11 00:22:03
@quantumSoup:它基于任意规则,我无法控制,哪些可能会在将来发生变化 – Jon 2010-08-11 00:26:29
另请注意,这看起来有点像背包问题,它是NP完全的(换句话说,解决方案效率低) – quantumSoup 2010-08-11 00:28:07