package com.age.google;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author lenovo
*
*/
public class TransLate {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "abc1234ab1abc1111abc1";
String s2 = "abc11";
String n = getTransLate(s,s2);
System.out.println(n);
}
/**
* 查找出最大匹配字符串
* @param s
* @param s2
* @return
*/
private static String getTransLate(String s,String s2){
boolean flag = false;
String result = "";
for(int i=s2.length();i>0;i--){
List<String> sList = getCom(s2,i);
for(int j=0;j<sList.size();j++){
if(s.indexOf(sList.get(j).toString())!=-1){
result = sList.get(j).toString();
flag = true;
break;
}
}
if(flag){
break;
}
}
return result;
}
/**
* 固定长度的所有组合
* @param s
* @param n
* @return
*/
private static List<String> getCom(String s,int n){
List list = new ArrayList<String>();
for(int i=0;i<=s.length()-n;i++){
list.add(s.substring(i, i+n));
}
return list;
}
}
分享到:
相关推荐
根据提供的文件信息,我们可以分析出该程序主要实现了两种字符串匹配算法:一种是简单的模拟匹配算法,另一种是KMP(Knuth-Morris-Pratt)算法。下面将对这两种算法进行详细的解析。 ### 一、简单模拟匹配算法 ...
KMP字符串模式匹配是一种高效的字符串搜索算法,由Knuth、Morris和Pratt三位学者提出,主要用于在一个长字符串(主串)中查找一个短字符串(子串)出现的位置。相较于简单的暴力匹配方法,KMP算法显著提升了匹配效率...
本程序通过简单的汇编语言指令实现了两个字符串的匹配查找,并且能够统计出匹配的数量。虽然程序较为基础,但它展示了汇编语言的一些核心概念和技术,如字符串操作、条件分支等,这对于初学者理解汇编语言具有一定的...
1. 构建部分匹配表:根据模式字符串生成一个表,指示在模式中当前位置不匹配时应向前跳过的最大距离。 2. 主循环:遍历文本字符串,每次比较模式字符串的一个字符和文本字符串的一个字符,根据部分匹配表决定是否...
**KMP字符串匹配算法详解** KMP(Knuth-Morris-Pratt)字符串匹配算法是由D.E. Knuth、V.J. Morris和J.H. Pratt三位学者于1977年提出的,它是一种高效的字符串搜索算法,主要用于在一个主串(text)中查找是否存在...
KMP算法是一种常用的字符串匹配算法,可以避免在主字符串中不必要的回溯,当遇到不匹配字符时,它能有效地跳过已知不匹配的部分。在C++中,实现KMP算法可能会包括创建一个部分匹配表,然后使用这个表来决定在不匹配...
这里主要讨论的是KMP(Knuth-Morris-Pratt)算法,这是一种高效的字符串匹配算法,适用于在主字符串中查找目标子串是否存在。 KMP算法的核心在于构建一个“部分匹配表”(next function),它存储了目标子串的前缀...
字符串匹配是计算机科学中一个基础且重要的问题,广泛应用于文本处理、搜索引擎、数据挖掘等领域。在C语言中,实现字符串匹配算法通常涉及到对字符数组的操作和逻辑控制结构。本篇文章将详细探讨四种常见的字符串...
串的最大匹配算法是字符串处理中的一个关键算法,广泛应用于文本搜索、模式匹配、生物信息学等领域。在ACM(国际大学生程序设计竞赛)和信息学奥林匹克等编程比赛中,这类问题也常常出现。本文将深入探讨串的最大...
部分匹配表的计算基于模式字符串,通过检查前缀和后缀是否相等来确定每个位置的最大匹配长度。一旦部分匹配表建立完成,我们就可以从文本字符串的第一个字符开始,依次比较文本字符和模式字符,根据部分匹配表的指示...
在计算机科学领域中,字符串匹配是一种常见的操作,它涉及到在一个较大的文本串(T)中查找一个较短的模式串(P)。本章节将重点介绍字符串匹配的基本概念以及两种重要的算法——简单字符串匹配算法和KMP算法。 ###...
这三种方法都是为了高效地在主串中查找模式串,即在长文本中寻找指定的短字符串。 首先,KMP算法是由D.E. Knuth、V. Morris和J. Pratt共同提出的。它避免了在出现部分匹配时的冗余比较,通过构建一个“部分匹配表”...
Sunday算法的基本思想是通过预处理模式字符串(即需要查找的子字符串)来快速定位可能的匹配位置,并尽可能地跳过不匹配的部分,从而减少不必要的字符比较次数。这种技术在实际应用中可以显著提高计算机程序的执行...
在计算机科学中,查找两个字符串中的最大公共子串是一个非常实用的问题,它广泛应用于文本处理、生物信息学等多个领域。例如,在文本处理中,我们可能需要比较两篇文档之间的相似度;在生物信息学中,则可以用于比较...
根据给定的文件信息,我们可以总结出以下关于“求一个字符串中的连续出现次数最多的字串”的相关知识点: ### 一、问题定义与分析 #### 1.1 问题背景 在计算机科学中,字符串处理是常见且重要的任务之一。本问题是...
1. 构建部分匹配表(prefix table):对于模式字符串P,部分匹配表LPS[i]表示P的前i个字符组成的前缀和后缀的最大公共长度。例如,如果P="ababc",那么LPS[0]=0,LPS[1]=0,LPS[2]=1(因为"ab"是其自身的一个前缀和...
该技术的核心思想是从字符串的最大可能长度(即字符串长度的一半)开始检查,并逐步减小子串的长度,直到找到最长的重复子串为止。 #### 代码实现与分析 下面是对题目描述中给出的部分C语言代码进行解析和补充: ...
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分割字符串。在Java中,它们由`java.util.regex`包提供支持。例如,如果你想要以逗号为分隔符分割字符串,可以使用`","`作为正则表达式。 ### 3. 分割...
单模式匹配算法是解决字符串问题的关键技术之一,主要用于在一个大文本(主串)中查找是否存在一个已知的模式串(目标串)。MP算法(Manacher's Algorithm)和KMP算法(Knuth-Morris-Pratt Algorithm)都是高效的单...