遇到这个问题 有没有大神遇到过解决的 求算法
有这样一个算法 规定一个总价,然后从N本书中选择任意本书等于这个总价。不用2的N次方穷举的算法,谢谢。 1 分钟前 提问者: 审什 | 悬赏分:10 | 浏览次数:2次
问题补充: 数学上这个是组合即从CN0 CN1 CN2 ...一直到CNN一共是2的N次方个方案,从中选择等于那个总价的方案然后列出。求数据结构与算法大神演绎较好的算法,若满意,加分送上。
有这样一个算法 规定一个总价,然后从N本书中选择任意本书等于这个总价。不用2的N次方穷举的算法,谢谢。 1 分钟前 提问者: 审什 | 悬赏分:10 | 浏览次数:2次
问题补充: 数学上这个是组合即从CN0 CN1 CN2 ...一直到CNN一共是2的N次方个方案,从中选择等于那个总价的方案然后列出。求数据结构与算法大神演绎较好的算法,若满意,加分送上。
int N = items.Length;
int sum = 100; //总价
string source = new string('1', sum);
string regex = string.Format("^{0}$", string.Join("", items.Select(x => string.Format("(1{{{0}}})?", x)).ToArray()));
Regex r = new Regex(regex);
Match m = r.Match(source);
if (m.Success)
{
Console.WriteLine("Result: {0}", string.Join(",", Enumerable.Range(1, N).Where(x=> m.Groups[x].Success).Select(x => m.Groups[x].Value.Length.ToString()).ToArray()));
}
else
{
Console.WriteLine("No Result");
}
求大神讲解正则表达式在C#算法设计上优势与不足,以及学习它要看什么书投入多少时间。最后问下大神使用它的时候要在程序开头 USING什么东西 谢谢
真要学的话,网上有“正则表达式30分钟入门教程”,保守估计一天就能学会。
正则表达式相关类在System.Text.RegularExpression里