博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
逆向最大匹配分词算法C#
阅读量:4983 次
发布时间:2019-06-12

本文共 2929 字,大约阅读时间需要 9 分钟。

逆向顺序

句子:大家好我叫XX我是一名程序员

程序员  ->  序员  ->  员

名程序  ->  程序  ->  序

一名程  ->  名程  ->  程

是一名  ->  一名  ->  名

我是一  ->  是一  ->  一

X我是   ->  我是  ->  是

XX我    ->  X我  ->  我

叫XX    ->  XX   ->  X

我叫X   ->  叫X  ->  X

好我叫  ->  我叫  ->  叫

家好我  ->  好我  ->  我

大家好  ->  家好  ->  好

大家     ->  家

 

class Program    {        public static HashSet
dictionary = new HashSet
(); static void Main(string[] args) { Initail(); List
list = new List
(); string s = "大家好我叫XX我是一名程序员"; string[] sentences = s.Split(','); int max = 3; for (int i = 0; i < sentences.Length; i++) { string str = sentences[i]; int start = sentences[i].Length - max; int len = sentences[i].Length - start; while (len > 0) { string subWord = sentences[i].Substring((start < 0 ? 0 : start), len); Console.WriteLine(subWord); if (Search(subWord)) { list.Add(subWord); start = start - max; if (start < 0) { len = start < 0 ? max + start : max; } } else { int k = 1; bool flag = false; string tempWord = null; for (; k <= subWord.Length - 1; k++) { tempWord = subWord.Substring(k); Console.WriteLine(tempWord); if (Search(tempWord)) { flag = true; list.Add(tempWord); break; } } if (flag) { start = start - tempWord.Length; } else { start--; } len = start < 0 ? max + start : max; } } } foreach (string x in list) { Console.WriteLine(x); } Console.ReadKey(); } public static void Initail() { dictionary.Add("大家"); dictionary.Add("好"); dictionary.Add("我"); dictionary.Add("一名"); dictionary.Add("程序员"); dictionary.Add("nick"); } public static bool Search(string word) { return dictionary.Contains(word); } }

转载于:https://www.cnblogs.com/soundcode/p/4931166.html

你可能感兴趣的文章
SQL联合查询
查看>>
dev 控件之 gridcontrid 应用
查看>>
什么是同一网段
查看>>
温故而知新
查看>>
c# 菱形,三角形
查看>>
java之MD5加密
查看>>
Codeforces Round #432 (Div. 2) ABC
查看>>
常见积性函数(转自百科)
查看>>
luogu_1010 幂次方
查看>>
codevs1231 最优布线问题
查看>>
python连接数据库(2)——mongodb
查看>>
为什么黑客都不用鼠标?你听说过Linux吗?
查看>>
eclipse安装CheckStyle,SpotBugs,findSecuritybugs插件
查看>>
ZBrush通过绘制层得到子物体
查看>>
算法学习之剑指offer(八)
查看>>
Genymotion虚拟机的全面了解
查看>>
Java设置session超时(失效)的时间
查看>>
deep learning入门:感知机
查看>>
C++四则运算出题器---有答案版
查看>>
2.VUE前端框架学习记录二
查看>>