串的模式匹配

简介: 题目描述 对于两个字符串A,B。请设计一个高效算法,找到B在A中第一次出现的起始位置。若B未在A中出现,则返回-1。 给定两个字符串A和B,及它们的长度lena和lenb,请返回题目所求的答案。

题目描述
对于两个字符串A,B。请设计一个高效算法,找到B在A中第一次出现的起始位置。若B未在A中出现,则返回-1。
给定两个字符串A和B,及它们的长度lena和lenb,请返回题目所求的答案。

测试样例:
“acbc”,4,”bc”,2
返回:2

import java.util.*;

public class StringPattern {
    public int findAppearance(String A, int lena, String B, int lenb) {
        // write code here
        if(lenb > lena) {
            return -1;
        }

        for (int i = 0; i<=lena-lenb; i++) {
            if(A.charAt(i) == B.charAt(0)) {//当第一个匹配时 进行判断
                boolean flag = true;
                for (int j = 1; j < lenb; j++) {
                    if(A.charAt(i+j) != B.charAt(j)) {
                        flag = false;
                        break;
                    }
                }
                if(flag) {
                    return i;
                }
            }
        }
        return -1;
    }
}
目录
相关文章
|
7月前
|
算法 测试技术 C#
【动态规划】【字符串】C++算法:正则表达式匹配
【动态规划】【字符串】C++算法:正则表达式匹配
|
人工智能 Java 机器人
掌握正则验证字串符,轻松搞定字符串匹配
正则验证字串符是一种强大的工具,可以帮助程序员在处理字符串时轻松进行复杂匹配。本文将介绍正则表达式的概念、语法和在编程中的应用,并通过实例演示如何使用正则表达式进行字符串匹配、替换和提取等操作。
|
C语言
带你快速了解字符(串)函数(一)
带你快速了解字符(串)函数(一)
|
2月前
|
Java API 索引
U4字符串以及正则表达式
【10月更文挑战第19天】在 Java 中,字符串是重要数据类型,支持多种操作如长度获取、字符访问、子串提取等。正则表达式提供强大的模式匹配和文本处理功能,通过 `Pattern` 和 `Matcher` 类实现。示例代码展示了如何使用正则表达式匹配单词字符。常用语法包括字符类、数量词、边界匹配和分组。
|
2月前
|
移动开发 Java Python
字符串里有换行符如何进行匹配?
【10月更文挑战第3天】字符串里有换行符如何进行匹配?
42 1
带你快速了解字符(串)函数(二)
带你快速了解字符(串)函数(二)
带你快速了解字符(串)函数(三)
带你快速了解字符(串)函数(三)
|
算法
串的模式匹配相关问题(BF算法、KMP算法)
串的模式匹配相关问题(BF算法、KMP算法)
137 0
|
算法
KMP 算法:快速匹配字符字串
KMP 算法主要是在一定长度的字符串中快速匹配出所需的目标字符串,也称模式字串,最大特点就是讲究一个快字。
116 0
KMP 算法:快速匹配字符字串
|
存储 算法 C语言
串、串的模式匹配算法(子串查找)BF算法、KMP算法
串、串的模式匹配算法(子串查找)BF算法、KMP算法