问题描述:给定一字符串strOriginal(全英文小写字母组成),并任意给一字符串strDesc,判断strDesc是否为strOriginal的任意排序,注意重复。 比如:给定字符串为adcbae,那么dacbea、cabeda都是匹配的,但是dacbe、cabedg不匹配
代码实现:
public class StringMatchTest
{
public static boolean testStr(String strOriginal,String strDesc)
{
if(strOriginal.equals("") || strDesc.equals(""))
return false;
if(strOriginal.equals(strDesc))
return true;
//先判断两个字符串长度是否相等
if(strOriginal.length() != strDesc.length())
{
return false;
}
//建立两个存放hash值的数组
int[] hashOriginal = new int[26];
int[] hashDesc = new int[26];
//建立两个字符串各自的hash表
for(int index = 0; index < strOriginal.length(); index++)
{
int indexOriginal,indexDesc;
indexOriginal = strOriginal.charAt(index) - 'a';
hashOriginal[indexOriginal] += 1;
indexDesc = strDesc.charAt(index) - 'a';
hashDesc[indexDesc] += 1;
}
return Arrays.equals(hashOriginal, hashDesc);
}
public static void main(String[] args)
{
String str1 = "";
String str2 = "";
if(testStr(str1, str2))
{
System.out.println("匹配成功!");
}else {
System.out.println("匹配失败!");
}
}
}
分享到:
相关推荐
用Boyer-Moore实现字符串匹配问题。算法中有坏字符移动表和好后缀移动表的创建方法。代码有注视供参考。
KMP算法,全称Knuth-Morris-Pratt字符串搜索算法,是一种线性时间复杂度的字符串匹配算法。它的主要思想是在发生不匹配时,能知道部分已经匹配的字符序列的后缀和模式串的前缀存在重复,因此可以利用这些信息避免...
字符串匹配算法的演示程序,包括了平凡算法、KMP、RK、BM四种,有界面,统计展示移动和比较次数等信息。
,用于计算两个字符串之间的归一化距离或相似度分数。 0.0 分表示两个字符串绝对不相似,1.0 表示绝对相似(或相等)。 介于两者之间的任何内容都表示两个字符串的相似程度。例子在这个简单的例子中,我们想要计算...
这是个比较难理解的算法,虽然代码就那么几行,但真正理解清楚还是要会时间的。
字符串匹配算法字符串匹配算法
使用java实现对两个字符串进行比较分析其相似度。
由于需要评估的源文件以及包含文件的文档池由字符串组成,因此使用字符串比较算法是很自然的。 我们使用了五种现有的经典字符串比较算法来完成任务,这些算法是LCSS,KMP,Rabin Karp,Boyer Moore和Naive字符串比较...
此资源属于算法分析课程的实验,只供学习使用。本人很少上CSDN,有兴趣,有需要的话可以发E-MAIL:hzz865@21cn.com
字符串搜索:算法 Z 字符串中精确匹配的搜索算法 Z 的实现
利用java语言实现的KMP算法, 可用于字符串模式匹配等项目中
也就是说,KMP算法是用来解决字符串匹配问题的,从一个主字符串text中寻找一个子字符串(模式字符串)pattern,看这个子串是否在主串中,比如对于text='abaacababcac'和pattern='ababc',子串是包含在主串中的,同时它...
主要介绍了java字符串相似度算法,是Java实现比较典型的算法,具有一定参考借鉴价值,需要的朋友可以参考下
本书系统讲解数据结构...第2版在延续了第1版理论结合实际的风格的同时,在理论上更精深了一层,添加了很多数据结构的经典问题与新的思想,比如NP完整性、图论中的团问题以及结合自动机理论探讨的字符串匹配技术等。...
本文档为使用Java代码实现了: 1.朴素的字符串匹配算法; 2.KMP字符串模式匹配算法 详细说明请参见博客: http://blog.csdn.net/lemon_tree12138/article/details/48488813
算法思想:用多模式串建立一个确定性的树形有限状态机,以主串作为该有限状态机的输入,使状态机进行状态的转换,当到达某些特定的状态时,说明发生模式匹配。AC 多模式匹配算法的实现可分预处理和搜索查找两个阶段...
字符串匹配的演示程序,包括平凡算法、KMP、RK、BM算法。展示移动、比较次数等,可以用于演示。jar包,需要java环境运行。
字符串匹配算法,从朴素算法到KMP匹配算法。借鉴算法导论,用java语言写出了实现方式。
kmp算法,能够读取txt和java文件,进行kmp查找匹配字符串后,可进行替换字符串
排序:归并排序,希尔排序,快速排序,堆排序 匹配:KMP,BM,Sunday,KR,Horspool 查找:二分查找