zoukankan
html css js c++ java
串的模式匹配算法之二:首尾匹配算法
using
System;
namespace
EasyIndex
{
class
Index
{
static
void
Main(
string
[] args)
{
string
s
=
"
acabaabcaabaabcac
"
;
string
m
=
"
abaabcac
"
;
int
i
=
0
;
int
j
=
0
;
while
(i
<
s.Length
&&
j
<
m.Length)
{
if
(s[i]
==
m[
0
])
//
判断两串的第一个元素是否相等
{
if
(s[i
+
m.Length
-
1
]
==
m[m.Length
-
1
])
//
如果头元素相等,再判断尾元素是否相等;
{
i
=
1
;
j
=
0
;
while
(i
<
s.Length
&&
j
<
m.Length)
//
如果头尾都相等,再从第二个元素到倒数第二个元素判断;
{
if
(s[i]
==
m[j])
{
i
++
;
j
++
;
}
else
{
i
=
i
-
j
+
1
;
j
=
0
;
}
}
}
else
{
i
=
i
-
j
+
1
;
j
=
0
;
}
}
else
{
i
=
i
-
j
+
1
;
j
=
0
;
}
}
if
(j
>=
m.Length)
//
说明m是s的一个子串,而且pos是i-m.Lengh+1,因为数组从0开始计数;
{
Console.WriteLine(
"
m与s中第
"
+
Convert.ToString(i
-
m.Length
+
1
)
+
"
个元素开始的子串相匹配!
"
);
}
else
{
Console.WriteLine(
"
m不是s的子串!
"
);
}
}
}
}
查看全文
相关阅读:
线性DP
2020年第十一届蓝桥杯第二场C/C++ B组省赛题解
筛质数 + 质因子分解
快速幂
DP 背包问题
CF510B Fox And Two Dots
怎样看人生的价值和意义!--找回迷失的自己
Ionic+AngularJS 开发的页面在微信公众号下显示不出来原因查究
AngularJS directive 指令相关记录
AngularJS的一点学习笔记
原文地址:https://www.cnblogs.com/gmq/p/515610.html
最新文章
类型转换
数据的拓展
java的注释和数据类型
JAVA理论
java运行机制和IDEA的安装及使用
Hello world
无线电知识-----发射功率与增益
信号强度(RSSI)知识整理
LoRa基础知识
LoRaWAN协议(二)----LoRaWAN MAC数据包格式
热门文章
LoRaWAN协议(一)------架构解析
hashlib模块
re模块补充 configparse模块
logging模块
re模块
计算机网络基础(杂)
Codeforces Round #697 (Div. 3) A~E题解
Codeforces Round #696 (Div. 2) (A~C题解)
Codeforces Round #693 (Div. 3) A~E 题解
Educational Codeforces Round 102 (Rated for Div. 2) A~D题
Copyright © 2011-2022 走看看