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的子串!
"
);
}
}
}
}
查看全文
相关阅读:
mysql 8 nodejs连不上
render与vue组件和注册
0424 前端笔记
0423
任务
使用async await 封装 axios
[Java] Spring 3.0 01/02/03/04/05 -自设源代码
[Java] Spring3.0 360百科介绍
[Java] Spring3.0
[Java] Spring3.0 面向抽象(接口)编程
原文地址:https://www.cnblogs.com/gmq/p/515610.html
最新文章
at new of / at end of
显示是否保持的对话框
ALV式的弹出窗口
PL/SQL程序设计 第四章 游标的使用
PL/SQL程序设计 第三章 PL/SQL流程控制语句
PL/SQL程序设计 第二章 PL/SQL块结构和组成元素
Cocos2d-x 3.1 修改程序名、图标和屏幕方向
我的作品
两部分代码比较,所带来的问题,下面已解决
心得01
热门文章
不能清除错误的资源,怎么办
模仿cocos2dx的3d引擎c3dEngine(开源)
使用Cocos2d-x 开发3D游戏
Cocos2d-x 的3D开发功能介绍
Cocos2d-x Developer Blog
设计过程
最佳同步方法 prom + await
回去样式改成scss的
ko2处理router和数据库
1
Copyright © 2011-2022 走看看