以前作为一个面试问题,并且在基本语法上窒息得太厉害,我没能推进(一旦肾上腺素开始,编码就会消失.)
给定一个字符串列表,返回一组字符串列表,这些字符串是输入集的字谜.即"狗","上帝","foo"应该返回{"dog","god"}.之后,我自己创建了代码作为一个完整性检查,它现在已经存在了一段时间.我欢迎对它进行输入,看看我是否遗漏了任何东西,或者我是否可以更有效地完成任务.把它当作改善自己和学习其他技巧的机会:
void Anagram::doWork(list input, list> &output)
{
typedef list < pair < string, string>> SortType;
SortType sortedInput;
// sort each string and pair it with the original
for(list< string >::iterator i = input.begin(); i != input.end(); ++i)
{
string tempString(*i);
std::sort(tempString.begin(), tempString.end());
sortedInput.push_back(make_pair(*i, tempString));
}
// Now step through the new sorted list
for(SortType::iterator i = sortedInput.begin(); i != sortedInput.end();)
{
set< string > newSet;
// Assume (hope) we have a match and pre-add the first.
newSet.insert(i->first);
// Set …Run Code Online (Sandbox Code Playgroud) 鉴于:
可能相关的信息:
例如:
Joel Spolsky在播客#11中表示,他的托管网络应用产品FogBugz On-Demand使用Lucene.他有成千上万的按需客户.每个客户都有自己的数据库.
他们为每个客户端使用一个索引并将其存储在客户端的数据库中.我不确定细节.而且我不确定这对Lucene来说是否是一个严肃的模式.
问题:
您将如何设置Lucene搜索,以便每个客户端只能在其数据库中进行搜索?
你会如何设置索引?
你在哪里存储索引?
您是否需要为所有搜索查询添加过滤器?
如果客户取消了,您将如何删除其(部分)索引?(这可能是微不足道的 - 还不确定)
可能的解决方案:
为每个客户端(数据库)创建索引
拥有一个带有database_name字段的巨大索引.始终包含database_name作为过滤器.
最后一件事:
我也接受使用Solr(Lucene的扩展)的答案.也许它更适合这个问题.不确定.
我在为数据库应用程序命名方法时遇到问题.
在我的Database实例中,我有一个方法可以Agreement从数据库中删除一个对象.但是,我希望能够Agreement一次删除多个s,以便能够使用事务.问题是我也有一个重载删除单个Agreement对象.
基本上,我的结构是这样的:
public class Database
{
// ...
public void RemoveAgreement(Agreement a)
{
// ...
}
public void RemoveAgreement(IEnumerable<Agreement> agreements)
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
但这可能令人困惑,因为Agreements 列表的重载具有单数名称,尽管本身就是复数.
我的问题是,我应该如何构建这个?我应该有两个带名称的重载RemoveAgreement(),或者RemoveAgreements()?或者我应该使用两种不同的方法,而不是重载?
谢谢.
我无法弄清楚如何在Groovy/Grails中进行"连接"以及我得到的返回值
person = User.get(user.id)
def latestPhotosForUser = PhotoOwner.findAll(
"FROM PhotoOwner AS a, PhotoStorage AS b WHERE (a.owner=:person AND a.photo = b)",
[person:person], [max:3])
Run Code Online (Sandbox Code Playgroud)
latestPhotosForUser不是PhotoOwners的列表.这是[PhotoOwner,PhotoStorage]对的列表.由于我正在做一个PhotoOwner.findAll,我原本希望看到只有PhotoOwners.
我做错了什么,或者这是正确的行为?
如何显示一组隐藏的div onmouseover?
例如 :
<div id="div1">Div 1 Content</div>
<div id="div2">Div 2 Content</div>
<div id="div3">Div 3 Content</div>
Run Code Online (Sandbox Code Playgroud)
所有div都需要在onmouseover事件中显示.
我正在开发它正在变成一个"跨平台"的2D游戏引擎,我的初始平台目标是iPhone OS,但可以转移到Android甚至某些控制台,如PSP或任天堂DS,我想保留我的选择打开.
我的引擎是用C++开发的,并且已经阅读了很多关于Box2D和Chipmunk的内容,但我还是无法决定使用哪一个作为我的物理中间件.
Chipmunk似乎很容易嵌入,Box2D似乎被广泛使用.Chipmunk是C,而Box2D是C++,但我听说Box2D的API比chipmunk的API差得多.
现在我将使用引擎形状创建和碰撞检测功能来处理不规则多边形(非凹形).
我重视:
1) Good API's
2) Easy to integrate.
3) Portability.
Run Code Online (Sandbox Code Playgroud)
当然,如果你发现其他任何事情,我很乐意听到.
您认为哪一种更适合我的需求?
编辑:我最后写了一篇关于我的特定选择的文章,你可以在这里找到它
我想刮掉javascript生成的html,就像你在Firebug中看到的一样.
更新:我发现这篇文章:http://blog.motane.lu/2009/07/07/downloading-a-pages-content-with-python-and-webkit/ 使用PyQt来解决问题适合我.
但另一个问题出现了:我必须首先登录网站,但我不知道如何在PyQt中模拟登录...... :(
我想在命令行上使用 curl 来获取一个 url,将其通过管道传输到一个模式,然后返回一个与该模式匹配的 url 列表。
我遇到了模式贪婪方面的问题,似乎无法解决它。对此的任何帮助将不胜感激。
curl http://www.reddit.com/r/pics/ | grep -ioE "http://imgur\.com/.+(jpg|jpeg|gif|png)"
Run Code Online (Sandbox Code Playgroud)
因此,从 url 获取数据,它返回一堆 html,可能需要以某种方式替换一些换行符,除非正则表达式可以在一行中返回多个模式。模式非常简单,任何匹配的字符串......
就是这样,在那个 url 上,使用默认设置,我通常应该得到一组好的图像。我不会反对在同一页面上使用 RSS 感觉 url,实际上它可能更容易解析。
谢谢大家!
编辑 感谢您的快速回答,我现在的最终命令是:
$curl -s http://www.reddit.com/r/pics/ | grep -ioE "http:\/\/imgur\.com\/.{1,10}\.(jpg|jpeg|gif|png)"
Run Code Online (Sandbox Code Playgroud) 假设我有一个相当大的类Matrix,我已经重载operator==以检查是否相等如下:
bool operator==(Matrix &a, Matrix &b);
Run Code Online (Sandbox Code Playgroud)
当然,我通过引用传递Matrix对象,因为它们太大了.
现在我有一个Matrix::inverse()返回新Matrix对象的方法.现在我想在比较中直接使用逆,如下所示:
if (a.inverse()==b) { ... }`
Run Code Online (Sandbox Code Playgroud)
问题是,这意味着inverse方法需要返回对Matrix对象的引用.两个问题:
由于我只是在这次比较中使用该引用,这是内存泄漏吗?
如果在inverse()方法中返回的对象属于boost :: shared_ptr,会发生什么?方法退出后,shared_ptr将被销毁,对象不再有效.有没有办法返回对属于shared_ptr的对象的引用?