| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 367 人关注过本帖
标题:一段英文文字~要找出一个指定的单词在文中出现的次数如何编写代码?
收藏  订阅  推荐  打印
gupengoklai
Rank: 1
等级:新手上路
帖子:1
积分:110
注册:2008-7-4
一段英文文字~要找出一个指定的单词在文中出现的次数如何编写代码?

一段英文文字~要找出一个指定的单词在文中出现的次数如何编写代码?
2008-7-4 21:50
sunkaidong
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:4121
积分:44769
威望:4
来自:南京师范大学
注册:2006-12-28

kmp速度快点。。。如果不考虑速度的话,可以用一般的查找

学习需要安静。。海盗要重新来过。。
2008-7-4 21:52
cosdos
Rank: 6Rank: 6
等级:金牌会员
帖子:1377
积分:14374
威望:1
来自:ShangHai
注册:2007-6-19

int fun(char * ar, char * a)    /* a 在ar 中出现的次数 */
{
    int i = 0, j;
    int count = 0;

    while(ar[i])
    {
        for(j = 0; (a[j] && ar[i+j]) && (a[j] == ar[i+j]); j++);

        if(!a[j])   // a[j] == '\0'
        {
            i += j;
            count++;
        }
        else
            i++;
    }
    return count;
}

—>〉Sun〈<—
2008-7-4 22:20
StarWing83
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:2476
积分:26129
威望:9
来自:湖北工业大学
注册:2007-11-16

如果单词是aaa。原文是aaaaa,那么算出现几次呢?

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-7-4 22:21
coming
Rank: 3Rank: 3
等级:中级会员
帖子:238
积分:2558
注册:2008-4-20

呵呵~~~思维缜密啊
2008-7-4 22:32
cosdos
Rank: 6Rank: 6
等级:金牌会员
帖子:1377
积分:14374
威望:1
来自:ShangHai
注册:2007-6-19

引用:
StarWing83 在 2008-7-4 22:21 的发言:

如果单词是aaa。原文是aaaaa,那么算出现几次呢?
一次。 这是我所认同的。

----------------------------

不过确实会丢掉几次可能的匹配。



-

[ 本帖最后由 cosdos 于 2008-7-5 01:07 编辑 ]

—>〉Sun〈<—
2008-7-5 00:31
cosdos
Rank: 6Rank: 6
等级:金牌会员
帖子:1377
积分:14374
威望:1
来自:ShangHai
注册:2007-6-19

[font=新宋体]我思考问题有点不同。

aaaaa   // 5个

aaaaa   // 已经出现过了,后面只有2个所以不满足3个a的条件


不重叠的匹配!  我一直这样思的。

第一次,看到别人的匹配算法吓了一跳,为何重叠的!


------------------------------------
我就是我,很小的时候就觉得重叠的很...(不知怎么表达),
反正就是不喜欢这样。
------------------------------------


[ 本帖最后由 cosdos 于 2008-7-5 01:08 编辑 ]

—>〉Sun〈<—
2008-7-5 00:42
cosdos
Rank: 6Rank: 6
等级:金牌会员
帖子:1377
积分:14374
威望:1
来自:ShangHai
注册:2007-6-19

我是我我是我是我是我是我是我是我是我是....

比方这个,

这个连着读的话,到底是“我是”、“我是我”还是“是我”,很便扭。
这就是我小时候想过的一个问题。

该怎么拆分这些词呢。(或者说怎么“理解、匹配”呢)


我杀人我杀人我杀人我杀人我杀人我杀人我杀人我杀人我杀人



[ 本帖最后由 cosdos 于 2008-7-5 01:04 编辑 ]

—>〉Sun〈<—
2008-7-5 00:55
StarWing83
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:2476
积分:26129
威望:9
来自:湖北工业大学
注册:2007-11-16

我是我 我是 我是 我是 我是 我是 我是 我是 我是....
主谓宾 主谓 主谓 主谓 主谓 主谓 主谓 主谓 主谓....

按照语法分析,显然是这样。除了同位语,汉语不允许两个名词性短语并列,但“我我”明显不是同位语结构。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-7-5 11:57
StarWing83
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:2476
积分:26129
威望:9
来自:湖北工业大学
注册:2007-11-16

如果是
我是我是我是我是我是我是我是我是...
则应该分成:
我是我 是我 是我 是我 是我 是我 是我 是...

道理同上,不过后面是动宾短语做平行语法成分。整个句子是复句。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-7-5 11:58
共有 366 人关注过本帖
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.054086 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved