导航:首页 > 源码编译 > java最大匹配算法

java最大匹配算法

发布时间:2022-09-23 18:51:15

⑴ 华为笔试题 java 求助 IP地址匹配(60分) 问题描述: 在路由器中,一般来说转发模块采

你得抵达那是基础课下的安第斯可这位是的内核。

⑵ 求java全字替换算法、全字匹配算法

没做过,只是想到几个思路:


  1. 如果文本量比较少(几千或者上万,具体没有测试过)并且要查询和替换的目标在正则中不是很复杂的话,使用正则表达式就可以实现快速的文本的查找和替换,并不需要自己写算法。如果文本量很大,就需要自己再想办法了。

  2. 如果文本量比较大,可以将文本存储到数据库中,数据库提供了文本的查找和替换的功能,并 且此功能已经相当完善,调用相应的数据库函数可以实现查找和替换。

  3. 如果你只是想学习文字处理上的一些算法,而非实现查找和替换的功能的话,就当上面什么都没说好了.....

⑶ Java编程实现字符串的模式匹配

传统的字符串模式匹配算法(也就是BF算法)就是对于主串和模式串双双自左向右,一个一个字符比较,如果不匹配,主串和模式串的位置指针都要回溯。这样的算法时间复杂度为O(n*m),其中n和m分别为串s和串t的长度。

KMP 算法是由Knuth,Morris和Pratt等人共同提出的,所以成为Knuth-Morris-Pratt算法,简称KMP算法。KMP算法是字符串模式匹配中的经典算法。和BF算法相比,KMP算法的不同点是匹配过程中,主串的位置指针不会回溯,这样的结果使得算法时间复杂度只为O(n+m)。

⑷ java求最大公共子串

二楼改的
c = b.substring(i,j-1);
之后下标越界没了。

程序无法出结果,中间有死循环。当while语句执行完之后j是a.length();然后是执行内循环for语句for(j=b.length()-1;j>0;j--) 此时只比较J>0;。。。。好像是个死循环。最内层的循环可以在加一个int k来控制。多次运行导致cpu上升至100%的。

提供一种矩阵算法,这是LCS的一种算法:
public class stringCompare {

/**求最长匹配子字符串算法
str数组记录每行生成的最大值strmax
max数组记录str数组最大时所处的列号nummaxj
最大子字符串为substring(nummax-strmax+1,strmax+1)
*/

public static void main(String[] args) {
String s1="asdfgxxcvasdfgc";
String s2="asdfxxcv";
int m=s1.length();
int n=s2.length();
int k=0;
int nummax=0;
int []str=new int[m];
int []max=new int[m];
int []num=new int[m];

for(int i=0;i<m;i++) //生成矩阵数组
for(int j=n-1;j>=0;j--)
{
if(s1.charAt(i)==s2.charAt(j))

if(i==0||j==0)
{
num[j]=1;
max[i]=j;
str[i]=1;
}
else
{
num[j]=num[j-1]+1;
if(max[i]<num[j])
{
max[i]=j;
str[i]=num[j];
}
}
else
num[j]=0;
}

for(k=0;k<m;k++) //求str数组的最大值
{
if(nummax<str[k])
{
nummax=str[k];
}
}

for(k=0;k<m;k++)
if(nummax==str[k])
System.out.println(s2.substring(max[k]-str[k]+1,max[k]+1));
}
}

⑸ JAVA 多个关键字匹配替换 找一个效率高的算法 正则与 循环判断是否存在的算法可以不用回答。

for (String str : list) {
if (str.contains("中国石油")) {
str.replace("中国石油", "<a href=''>l中国石油<a>");
}
}

⑹ 如何利用Java实现像百度,谷歌那样的,在输入框里出现最大匹配的10条数据如果有代码最好,给个思路也行

//客户信息列表
function qryRptParam(){
var url = "searchRptParamList.action";
gAjaxSearch = new AjaxSearch(url,undefined,undefined,"filterform",undefined,function() {
//这里写页面判断和相关设置,如果没有直接为空
},undefined,document.getElementById("qryList"));
gAjaxSearch.send();
//reset and minimize query section
resetQryBox();

}
这段js好好研究
qryList是你要把查出来的内容放入的div的名字(也就是你要刷新的层)
相信在什么事件中调用你应该知道吧

⑺ 基于java的正向最大匹配分词的代码如:马路上面积水--马路/上面/积水,马/路上面/积水,马路上/面积/水等

正向最大匹配跟分词有很大关系,代码什么的网上一搜很多了

⑻ java中文分词组件word怎么使用

参考如下
1、快速体验
运行项目根目录下的脚本demo-word.bat可以快速体验分词效果
用法: command [text] [input] [output]
命令command的可选值为:demo、text、file
demo
text 杨尚川是APDPlat应用级产品开发平台的作者
file d:/text.txt d:/word.txt
exit

2、对文本进行分词
移除停用词:List<Word> words = WordSegmenter.seg("杨尚川是APDPlat应用级产品开发平台的作者");
保留停用词:List<Word> words = WordSegmenter.segWithStopWords("杨尚川是APDPlat应用级产品开发平台的作者");
System.out.println(words);

输出:
移除停用词:[杨尚川, apdplat, 应用级, 产品, 开发平台, 作者]
保留停用词:[杨尚川, 是, apdplat, 应用级, 产品, 开发平台, 的, 作者]

3、对文件进行分词
String input = "d:/text.txt";
String output = "d:/word.txt";
移除停用词:WordSegmenter.seg(new File(input), new File(output));
保留停用词:WordSegmenter.segWithStopWords(new File(input), new File(output));

4、自定义配置文件
默认配置文件为类路径下的word.conf,打包在word-x.x.jar中
自定义配置文件为类路径下的word.local.conf,需要用户自己提供
如果自定义配置和默认配置相同,自定义配置会覆盖默认配置
配置文件编码为UTF-8

5、自定义用户词库
自定义用户词库为一个或多个文件夹或文件,可以使用绝对路径或相对路径
用户词库由多个词典文件组成,文件编码为UTF-8
词典文件的格式为文本文件,一行代表一个词
可以通过系统属性或配置文件的方式来指定路径,多个路径之间用逗号分隔开
类路径下的词典文件,需要在相对路径前加入前缀classpath:

指定方式有三种:
指定方式一,编程指定(高优先级):
WordConfTools.set("dic.path", "classpath:dic.txt,d:/custom_dic");
DictionaryFactory.reload();//更改词典路径之后,重新加载词典
指定方式二,Java虚拟机启动参数(中优先级):
java -Ddic.path=classpath:dic.txt,d:/custom_dic
指定方式三,配置文件指定(低优先级):
使用类路径下的文件word.local.conf来指定配置信息
dic.path=classpath:dic.txt,d:/custom_dic

如未指定,则默认使用类路径下的dic.txt词典文件

6、自定义停用词词库
使用方式和自定义用户词库类似,配置项为:
stopwords.path=classpath:stopwords.txt,d:/custom_stopwords_dic

7、自动检测词库变化
可以自动检测自定义用户词库和自定义停用词词库的变化
包含类路径下的文件和文件夹、非类路径下的绝对路径和相对路径
如:
classpath:dic.txt,classpath:custom_dic_dir,
d:/dic_more.txt,d:/DIC_DIR,D:/DIC2_DIR,my_dic_dir,my_dic_file.txt

classpath:stopwords.txt,classpath:custom_stopwords_dic_dir,
d:/stopwords_more.txt,d:/STOPWORDS_DIR,d:/STOPWORDS2_DIR,stopwords_dir,remove.txt

8、显式指定分词算法
对文本进行分词时,可显式指定特定的分词算法,如:
WordSegmenter.seg("APDPlat应用级产品开发平台", SegmentationAlgorithm.BidirectionalMaximumMatching);

SegmentationAlgorithm的可选类型为:
正向最大匹配算法:MaximumMatching
逆向最大匹配算法:ReverseMaximumMatching
正向最小匹配算法:MinimumMatching
逆向最小匹配算法:ReverseMinimumMatching
双向最大匹配算法:BidirectionalMaximumMatching
双向最小匹配算法:BidirectionalMinimumMatching
双向最大最小匹配算法:
全切分算法:FullSegmentation
最少分词算法:MinimalWordCount
最大Ngram分值算法:MaxNgramScore

9、分词效果评估
运行项目根目录下的脚本evaluation.bat可以对分词效果进行评估
评估采用的测试文本有253 3709行,共2837 4490个字符
评估结果位于target/evaluation目录下:
corpus-text.txt为分好词的人工标注文本,词之间以空格分隔
test-text.txt为测试文本,是把corpus-text.txt以标点符号分隔为多行的结果
standard-text.txt为测试文本对应的人工标注文本,作为分词是否正确的标准
result-text-***.txt,***为各种分词算法名称,这是word分词结果
perfect-result-***.txt,***为各种分词算法名称,这是分词结果和人工标注标准完全一致的文本
wrong-result-***.txt,***为各种分词算法名称,这是分词结果和人工标注标准不一致的文本

⑼ java中哪种查找算法最有效率

这个问题不能一概而论


如果有一种算法优于其他算法,那么其他算法就不存在了不是?


所以,要看在什么情况下,那么有这么几个方面

  1. 背景数量级和匹配数量级,就是说你要在多少数据中查找多少数据。

  2. 背景数据差异度,背景数据如果包罗万象,或者都是数字,那么选择的算法区别就大了

  3. 背景数据整理程度。很多人在选择查找算法时不考虑这个,但是这在实际应用中很有异议,比如数据都排序过和没有排序过,可想而知算法的选择有很大的不同。

  4. 匹配方式,是用“等于” 这种方式匹配,还是用like这种方式匹配,也对算法有很大影响。

阅读全文

与java最大匹配算法相关的资料

热点内容
加密空投与硬分叉指南 浏览:15
加密wps文档密码忘了怎么办 浏览:685
冲程算法 浏览:988
鸡料与鸡粪的算法 浏览:833
phpif变量为空值 浏览:59
iot编译器异常 浏览:600
代理服务器被禁用怎么上网 浏览:411
隐私加密怎么设置密码 浏览:940
马丁靴补色解压 浏览:565
在设置app上怎么找到个人热点 浏览:754
按照档案号生成文件夹 浏览:1001
程序员转方向 浏览:111
lol敏捷加密 浏览:882
传统公司眼中的加密货币 浏览:430
电脑图标又出现文件夹怎么去掉 浏览:964
排序算法c和a 浏览:418
手机拍照上传android 浏览:343
linux压缩率 浏览:614
电脑浏览器加密端口 浏览:536
单片机线性电源 浏览:268