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的子串!
"
);
}
}
}
}
查看全文
相关阅读:
1-4个人博客
大二上学期软件工程概论学习进度表(第十六周)
软件工程概论个人总结
python+selenium 定位元素的主要方法
python+selenium 元素定位--iframe
返回字符串中出现最多的字符
TestNG中 ITestListener 的使用
对数组对象按某些属性排序方法
OSX 10.11 cocoapods安装命令: sudo gem install -n /usr/local/bin cocoapods
IOS启动页设置适应ios8/9
原文地址:https://www.cnblogs.com/gmq/p/515610.html
最新文章
HTML表单标签
表格的基本结构与属性
聊聊标准盒模型和怪异盒模型的区别
《构建之法》第一章总结
来个标题
登录界面
异常处理 课后作业
继承与多态 课后习题
2017-10-27 课后作业02
凯撒的字符串加密
热门文章
2017-10-19 课后作业02
使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”。
2017-10-14 问题思考
《浪潮之巅》阅读笔记01
1-10个人博客
1-9个人博客
1-8个人博客
1-7个人博客
1-6个人博客
1-5个人博客
Copyright © 2011-2022 走看看