论坛首页 综合技术论坛

动态规划,递归与非递归,FP 之野望,描述与计算

浏览 27305 次
该帖已经被评为精华帖
作者 正文
   发表时间:2008-06-20  
俺们只是搭架子的软件砖工,要算法干吗?
0 请登录后投票
   发表时间:2008-06-20  
引用
Stay tuned.

内部八卦小道准确消息,
某人准备TJ了.
0 请登录后投票
   发表时间:2008-06-20  
Trustno1 写道
引用
Stay tuned.

内部八卦小道准确消息,
某人准备TJ了.

so没有挑战呀!~~

老巫师的 魔咒题 还不够我填牙缝的呢?

2 simple,2 naive,2 标题党~~
0 请登录后投票
   发表时间:2008-06-21  
Trustno1 写道
引用
Stay tuned.

内部八卦小道准确消息,
某人准备TJ了.

期待巫师长夜漫漫,无心睡梦,上 Javaeye 来继续写帖子。
0 请登录后投票
   发表时间:2008-06-21  
凑个热闹
对于一个n长的句子
从 1 到 n找出所有的"咒语点" 就可以了
判断每个点是不是咒语点 取决于它到之前的所有咒语点是否有是魔法单词
0 请登录后投票
   发表时间: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>

嗯 我喜欢简洁的东西
0 请登录后投票
   发表时间:2008-06-27  
elm真的tj了?

0 请登录后投票
   发表时间:2008-07-14  
看了楼主的帖子,很开心(稀里糊涂做上了java developer的我没学过算法,看到楼主介绍,立马学习)。期待楼主的下一篇算法的介绍,楼主顺便也介绍本算法的书给我们这些菜头们吧。
看了很多人对魔法词典的那道题。我很搞不太清楚兄弟们的程序突出的是什么,(我水平一般,对算法不太精通,望见谅),我觉得这里突出的问题是 句子中所有重复的魔法词的验证冗余 引起的,而判断句子是否咒语就是验证每个词是否为魔法词。期待楼主出来做个正解,指导下我这类菜头。
0 请登录后投票
   发表时间:2008-07-23  
引用

话说有个魔法字典,其中记录了一些魔力单词(字符串),如果一个句子(也是字符串)可以被完全分解为若干魔力单词的拼接,那么这个句子就是一条咒语。假设我们可以用常数时间查询魔力字典是否包含一个特定的单词,那么现在给你一个句子,让你写一个程序判断这个句子是否一条咒语。


打眼一看 想到了KMP的一个变种
0 请登录后投票
   发表时间: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')
 

 

0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics