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的子串!
"
);
}
}
}
}
查看全文
相关阅读:
数据结构C语言实现----入栈操作
数据结构C语言实现----创建一个栈
数据结构C语言实现----销毁链表
数据结构C语言实现----从链表中删除结点
数据结构C语言实现----向链表中插入结点
数据结构C语言实现----创建一个链表
《C程序设计语言》 练习3-5
交易是如何被创建和打包的5
交易是如何被创建和打包的6
交易是如何被创建和打包的4
原文地址:https://www.cnblogs.com/gmq/p/515610.html
最新文章
正则表达式匹配
构建乘积数组
把字符串转换成整数
css3与页面布局-概要,选择器,特殊性,刻度单位
反射与注解
根据身份证号码自动获取出生日期,性别,籍贯
Servlet简e介、原理以及封装
java中经常问到的面试题
mysql一些代码和例题
简单二维码使用
热门文章
富文本
学会上传图片
下载图片,文档,excel导入导出
版本控制-Version control
URI和URL的区别
http与rfc
什么是函数式语言?
数据结构C语言实现----清空、销毁一个栈
数据结构C语言实现----出栈操作
数据结构C语言实现----单链表实例
Copyright © 2011-2022 走看看