首页 > 编程知识 正文

算法是什么,算法可以没有输入

时间:2023-05-04 12:29:38 阅读:20087 作者:2078

背景:因为最近在项目中使用了敏感的单词过滤服务,所以我在网上知道了dfa实现这个功能很好,并学习了

1. 什么是DFA算法

引用简书作者:浪人与酒丶解读

原文链接: https://www.Jian Shu.com/p/c 67 f 917 c 9363

DFA全部称为“Deterministic Finite Automaton”,确定有贫困机器人。 特征在于有限状态的集合和从一个状态通向另一个状态的若干边,每一边都被标记着符号,其中一个状态是初始状态,一个状态是终结状态。 但是,与不确定的有限自动机不同,DFA中从相同状态出发的两个边缘标记不会具有相同的符号。

确定:状态和引起状态变化的事件可以确定,不存在“事故”。

有穷:状态和事件数量都很穷。

2. DFA算法模型

state_event_dict={ '马' : { '计算' : { '法' : { 'is_end': True },' is _ end ' 3360 “is _ end”: false }、“is _ end”3360 false }“信”:“信息”:“吸”:“取”3:“is _ end”3365221;真

privatestaticvoidaddsensitivewordtoHashMap (setstringkeywordset )初始化hashmap对象和控制容器大小的sensitivewordmap=new hashashmap //敏感词String key=null; //敏感词典数据Map nowMap=null :为了辅助构建//敏感词典MapString,以正确的格式存储//敏感词典数据Map nowMap=null; 使用//迭代器循环通过iteratorstringiterator=keywords et.iterator (iterator.hasnext () ) { key=iterator.next nowMap=sensitiveWordMap; for(intI=0; i key.length (; I ) )//截取敏感单词中的单词,敏感词典中HashMap对象的Key键值charkeychar=key.Charat(I ); //确定这个字是否在敏感词典中的objectwordmap=now map.get (keychar ); 世界地图!=null () nowmap=) map ) wordMap; (else ) newwormap=newhashmap ); newwormap.put('isend ','0' ); nowmap.put(keychar,newWorMap ); nowMap=newWorMap; (/)如果此单词是当前敏感词的最后一个单词,则将其标识为末尾单词if(I==key.length )- 1 ) nowmap.put )、) isend )和)1)。 } } } } 3. 通过java程序加载敏感词库,构建一个DFA算法模型

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。