`

查找出最大匹配字符串

阅读更多

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

    根据提供的文件信息,我们可以分析出该程序主要实现了两种字符串匹配算法:一种是简单的模拟匹配算法,另一种是KMP(Knuth-Morris-Pratt)算法。下面将对这两种算法进行详细的解析。 ### 一、简单模拟匹配算法 ...

    KMP 字符串模式匹配详解

    KMP字符串模式匹配是一种高效的字符串搜索算法,由Knuth、Morris和Pratt三位学者提出,主要用于在一个长字符串(主串)中查找一个短字符串(子串)出现的位置。相较于简单的暴力匹配方法,KMP算法显著提升了匹配效率...

    字符串查找的汇编程序

    本程序通过简单的汇编语言指令实现了两个字符串的匹配查找,并且能够统计出匹配的数量。虽然程序较为基础,但它展示了汇编语言的一些核心概念和技术,如字符串操作、条件分支等,这对于初学者理解汇编语言具有一定的...

    字符串匹配和斐波那契数列汇编_字符串匹配斐波那契数列汇编语言_

    1. 构建部分匹配表:根据模式字符串生成一个表,指示在模式中当前位置不匹配时应向前跳过的最大距离。 2. 主循环:遍历文本字符串,每次比较模式字符串的一个字符和文本字符串的一个字符,根据部分匹配表决定是否...

    KMP字符串匹配算法

    **KMP字符串匹配算法详解** KMP(Knuth-Morris-Pratt)字符串匹配算法是由D.E. Knuth、V.J. Morris和J.H. Pratt三位学者于1977年提出的,它是一种高效的字符串搜索算法,主要用于在一个主串(text)中查找是否存在...

    字符串查找程序

    KMP算法是一种常用的字符串匹配算法,可以避免在主字符串中不必要的回溯,当遇到不匹配字符时,它能有效地跳过已知不匹配的部分。在C++中,实现KMP算法可能会包括创建一个部分匹配表,然后使用这个表来决定在不匹配...

    Java检索字符串中是否存在某字符

    这里主要讨论的是KMP(Knuth-Morris-Pratt)算法,这是一种高效的字符串匹配算法,适用于在主字符串中查找目标子串是否存在。 KMP算法的核心在于构建一个“部分匹配表”(next function),它存储了目标子串的前缀...

    字符串匹配算法C代码实现

    字符串匹配是计算机科学中一个基础且重要的问题,广泛应用于文本处理、搜索引擎、数据挖掘等领域。在C语言中,实现字符串匹配算法通常涉及到对字符数组的操作和逻辑控制结构。本篇文章将详细探讨四种常见的字符串...

    串的最大匹配算法.rar

    串的最大匹配算法是字符串处理中的一个关键算法,广泛应用于文本搜索、模式匹配、生物信息学等领域。在ACM(国际大学生程序设计竞赛)和信息学奥林匹克等编程比赛中,这类问题也常常出现。本文将深入探讨串的最大...

    数据结构字符串的模式匹配

    部分匹配表的计算基于模式字符串,通过检查前缀和后缀是否相等来确定每个位置的最大匹配长度。一旦部分匹配表建立完成,我们就可以从文本字符串的第一个字符开始,依次比较文本字符和模式字符,根据部分匹配表的指示...

    算法与数据结构 算法分析课程 第11章 字符串匹配 字符串匹配算法 KMP算法 共11页.pptx

    在计算机科学领域中,字符串匹配是一种常见的操作,它涉及到在一个较大的文本串(T)中查找一个较短的模式串(P)。本章节将重点介绍字符串匹配的基本概念以及两种重要的算法——简单字符串匹配算法和KMP算法。 ###...

    字符串匹配(字符串是随机生成的)

    这三种方法都是为了高效地在主串中查找模式串,即在长文本中寻找指定的短字符串。 首先,KMP算法是由D.E. Knuth、V. Morris和J. Pratt共同提出的。它避免了在出现部分匹配时的冗余比较,通过构建一个“部分匹配表”...

    字符串匹配之Sunday算法(英文原版)

    Sunday算法的基本思想是通过预处理模式字符串(即需要查找的子字符串)来快速定位可能的匹配位置,并尽可能地跳过不匹配的部分,从而减少不必要的字符比较次数。这种技术在实际应用中可以显著提高计算机程序的执行...

    找两字符串中最大子串

    在计算机科学中,查找两个字符串中的最大公共子串是一个非常实用的问题,它广泛应用于文本处理、生物信息学等多个领域。例如,在文本处理中,我们可能需要比较两篇文档之间的相似度;在生物信息学中,则可以用于比较...

    求一个字符串中的连续出现次数最多的字串

    根据给定的文件信息,我们可以总结出以下关于“求一个字符串中的连续出现次数最多的字串”的相关知识点: ### 一、问题定义与分析 #### 1.1 问题背景 在计算机科学中,字符串处理是常见且重要的任务之一。本问题是...

    KMP字符串模式匹配算法

    1. 构建部分匹配表(prefix table):对于模式字符串P,部分匹配表LPS[i]表示P的前i个字符组成的前缀和后缀的最大公共长度。例如,如果P="ababc",那么LPS[0]=0,LPS[1]=0,LPS[2]=1(因为"ab"是其自身的一个前缀和...

    在字符串中查找最长重复子串的探讨

    该技术的核心思想是从字符串的最大可能长度(即字符串长度的一半)开始检查,并逐步减小子串的长度,直到找到最长的重复子串为止。 #### 代码实现与分析 下面是对题目描述中给出的部分C语言代码进行解析和补充: ...

    Java分割字符串

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分割字符串。在Java中,它们由`java.util.regex`包提供支持。例如,如果你想要以逗号为分隔符分割字符串,可以使用`","`作为正则表达式。 ### 3. 分割...

    字符串处理- 单模式匹配- MP 算法与 KMP 算法.rar

    单模式匹配算法是解决字符串问题的关键技术之一,主要用于在一个大文本(主串)中查找是否存在一个已知的模式串(目标串)。MP算法(Manacher's Algorithm)和KMP算法(Knuth-Morris-Pratt Algorithm)都是高效的单...

Global site tag (gtag.js) - Google Analytics