找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 315|回复: 3

[【心情日记】] 让算法烧脑子

[复制链接]
发表于 2017-7-28 03:18:28 | 显示全部楼层 |阅读模式
本帖最后由 agent124 于 2017-7-28 07:17 编辑

年纪大了,脑子本来就不好,现在越发感到不够用了,特别是碰到算法这种烧脑子的东西。
本来在看一本关于搜索引擎的书,倒不是想做搜索引擎,而是想利用它的部分技术,看了没多少,看到一个算法,Aho-Corasick算法,书中用来处理敏感词过滤。我水平差,一看到算法就头大。跳过这部分,倒也不影响原来的目标,但是觉得这个算法好像挺有用,就想搞懂,硬着头皮看了下去。
看了几遍还是弄不明白,只好上网搜相关资料,先是搜到某基百科,原来以为洋人写的容易懂些,结果由于自己水平差,看了半天还是云里雾里,于是又找中文资料,看了好几个博客,花了很长时间,才一点点约摸看明白了算法。
接下来是写程序实现,我水平差,一方面也想偷懒,看见有个博客上有完整实现,就想模仿一下,但他是用python写的,没学过,好在python的语法不难懂,逐句改写成c#,再加上一点检查null的语句,运行一下,似乎基本正常。
但是又发现这个程序是有问题的,起先以为是自己改写得有问题,但看了那个博客上的输出画面,和自己的一样,于是知道改写没问题,是原来的程序有问题。水平差,想不出优雅的解决办法,只好用略微有点肮脏的手法fix了。
运行正常后,又想调节它的功能。比如有这么个字符串(从博客上抄来的例子):ushers,现要检查它是否含有这些字符串:he, she, his, hers。原算法的运行结果是:she, hers。但是现在我希望匹配了she后,下次就从r开始匹配,也就是希望运行结果只有一个she。还好这个不难,改了一下就成了,虽然由于水平差,肯定不是效率最高的解决办法。
接下来又想在上面的基础上输出原字符串中不匹配的部分,仍以上为例,希望输出:u, rs。这个也不难,一下就改好了。
这个做好了,觉得可以应用在某些地方。虽然被算法烧了一回脑子,总算还是有收获。无足挂齿,贻笑大方,写出来不过是自暴其丑,让别人看到自己的水平有多差,这点东西都要折腾半天才搞懂。只好说是敝帚自珍吧。不管怎么说,弄懂了一个算法总是令人高兴的事。

评分

1

查看全部评分

回复

使用道具 举报

发表于 2017-7-28 06:16:03 | 显示全部楼层
你以为是烧脑子,我看完是烧坏了脑子。哈哈。佩服你一下!
回复

使用道具 举报

发表于 2017-9-20 21:33:30 | 显示全部楼层
同道中人,越老越觉得时间很关键,得有时间去耗!
回复

使用道具 举报

发表于 2017-9-20 22:41:50 | 显示全部楼层
做算法,好
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2024-4-30 13:56 , Processed in 0.402084 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表