该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-06-20
俺们只是搭架子的软件砖工,要算法干吗?
|
|
返回顶楼 | |
发表时间:2008-06-20
引用 Stay tuned.
内部八卦小道准确消息, 某人准备TJ了. |
|
返回顶楼 | |
发表时间:2008-06-20
Trustno1 写道 引用 Stay tuned.
内部八卦小道准确消息, 某人准备TJ了. so没有挑战呀!~~ 老巫师的 魔咒题 还不够我填牙缝的呢? 2 simple,2 naive,2 标题党~~ |
|
返回顶楼 | |
发表时间:2008-06-21
Trustno1 写道 引用 Stay tuned.
内部八卦小道准确消息, 某人准备TJ了. 期待巫师长夜漫漫,无心睡梦,上 Javaeye 来继续写帖子。 |
|
返回顶楼 | |
发表时间:2008-06-21
凑个热闹
对于一个n长的句子 从 1 到 n找出所有的"咒语点" 就可以了 判断每个点是不是咒语点 取决于它到之前的所有咒语点是否有是魔法单词 |
|
返回顶楼 | |
发表时间:2008-06-21
<script> var MagicDictionary={ to:null, too:null, object:null } function isMagicWord(word){ return MagicDictionary.hasOwnProperty(word); } function isSpell(sentence) { var SpellPoints=[0]; var p; for(p=0;p<sentence.length;p++) { var i; for(i=0;i<SpellPoints.length;i++) if(isMagicWord(sentence.slice(SpellPoints[i],p+1))) break; if(i<SpellPoints.length)SpellPoints.push(p+1); } if(SpellPoints.pop()==sentence.length)return true; else return false; } alert(isSpell("tobject")); alert(isSpell("toobject")); alert(isSpell("tooobject")); </script> 嗯 我喜欢简洁的东西 |
|
返回顶楼 | |
发表时间:2008-06-27
elm真的tj了?
|
|
返回顶楼 | |
发表时间:2008-07-14
看了楼主的帖子,很开心(稀里糊涂做上了java developer的我没学过算法,看到楼主介绍,立马学习)。期待楼主的下一篇算法的介绍,楼主顺便也介绍本算法的书给我们这些菜头们吧。
看了很多人对魔法词典的那道题。我很搞不太清楚兄弟们的程序突出的是什么,(我水平一般,对算法不太精通,望见谅),我觉得这里突出的问题是 句子中所有重复的魔法词的验证冗余 引起的,而判断句子是否咒语就是验证每个词是否为魔法词。期待楼主出来做个正解,指导下我这类菜头。 |
|
返回顶楼 | |
发表时间:2008-07-23
引用 话说有个魔法字典,其中记录了一些魔力单词(字符串),如果一个句子(也是字符串)可以被完全分解为若干魔力单词的拼接,那么这个句子就是一条咒语。假设我们可以用常数时间查询魔力字典是否包含一个特定的单词,那么现在给你一个句子,让你写一个程序判断这个句子是否一条咒语。 打眼一看 想到了KMP的一个变种 |
|
返回顶楼 | |
发表时间:2009-05-19
magic_dict = ('ab', 'abc', 'magic', 'god', 'hello') def ismagic(s): l = len(s) temp = [[0,0]] while temp: temp[-1][1] += 1 if temp[-1][1] == l: if s[temp[-1][0]:temp[-1][1]] in magic_dict: return True else: temp.pop() else: if s[temp[-1][0]:temp[-1][1]] in magic_dict: temp.append([temp[-1][1], temp[-1][1]]) else: pass return False if __name__ == '__main__': print ismagic('abcamagic')
|
|
返回顶楼 | |