匹配

组合数学实验——二分图匹配算法

不羁岁月 提交于 2020-04-15 15:39:56
【推荐阅读】微服务还能火多久?>>> 大一时候写的代码,忽然翻了出来.... 算法:组合数学中文第4版 机械工业出版社 P234 ID就先隐藏掉了 ////////////////////////////////////////////// // // // Project Name: matching // // // // Author: Victor Zhang // // // // ID: 21*****92 // // // // Create Date: March 31. 2009 // // // ////////////////////////////////////////////// #include <iostream> #include <iomanip> using namespace std; struct Node { int i;//col int j;//row int tag;//-1='*', 0=Empty, -2=Locked int link;//-1=Empty, 0=Locked bool flag;//search flag Node* down; Node* right; }; class Graph { private: Node* head; int row; int col; int num; bool

javaScript的正则表达式(二)

让人想犯罪 __ 提交于 2020-03-17 16:38:07
某厂面试归来,发现自己落伍了!>>> 四、支持 正则表达式 的String对象的方法 1.search() str.search(regexp) 如果匹配成功, search() 返回正则表达式在字符串中首次匹配项的索引。否则,返回 -1 2.match() str.match(regexp) 当字符串匹配到 正则表达式 (regular expression)时,match() 方法会提取匹配项,如果找到返回匹配结果的数组,如果没有匹配项,则返回null 3.replace() str.replace(regexp|substr, newSubStr|function) replace() 方法使用一个替换值(replacement)替换掉一个匹配模式(pattern)在原字符串中某些或所有的匹配项,并返回替换后的字符串。这个替换模式可以是字符串或者 RegExp(正则表达式),替换值可以是一个字符串或者一个函数 regexp,一个RegExp对象。该正则所匹配的内容会被第二个参数的返回值替换掉 substr,一个要被 newSubStr 替换的字符串 newSubStr,替换掉第一个参数在原字符串中的匹配部分。该字符串中可以内插一些特殊的变量名。 function,一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。 4.split() str

使用 Levenshtein 寻找彼此相似的字符串对

不羁的心 提交于 2020-03-01 03:33:46
我们爬来了一些数据,接下来以豆瓣畅销书为例。 爬虫爬来的数据有 ['艾伦•图灵传','深入理解计算机系统(原书第2版)','C++ Primer 中文版(第 5 版)','深入理解计算机系统','Web性能权威指南'] 而我们系统中原有的数据有 ['艾伦·图灵传','深入理解计算机系统(原书第2版)','C++ Primer 中文版(第 4 版)','深入理解计算机系统'] 做前端的同志可能一眼就看出来了,两个数组中有三个元素是因为全半角的缘故,是不能全词匹配的,而前两本书事实上是同一本书。而《深入理解计算机系统》是可以全词匹配到的,《Web性能权威指南》一书是可以直接添加到数据库的。 解决方案一: 这个任务大可以交给编辑去做,但是时间复杂度为 N^2,连程序都吃不消跑,更别提让编辑做了。 解决方案二: 去除所有的标点符号,或者将所有全角符号转化为半角。 去掉所有空格。 然后进行全词匹配,这样做有些鲁莽,但是速度一点也不慢。 解决方案三: 我想到了用 jieba 进行中文分词, import jieba book = '艾伦·图灵传' word = jieba.cut(book) words = list(word) # words = ['艾伦', '·', '图灵', '传'] 对于每本书我们都可以进行这样一个分词操作,并可以考虑将标点符号去除。

javaScript的正则表达式 (一)

风格不统一 提交于 2019-12-07 13:53:32
本篇文章我们就来介绍 javaScript 的正则表达式 RegExp对象也称正则表达式 一.什么是正则表达式? 正则表达式 是一个描述字符模式的对象。可以处理复杂的字符串,正则表达式用于对字符串模式匹配及检索替换。JavaScript中的正则表达式使用RegExp对象表示。 二.如何使用正则表达式 1.创建正则表达式 (1).使用new关键字动态创建正则表达式 var patt=new RegExp(pattern,modifiers) (2).直接创建正则表达式 var patt=/pattern/modifiers; 参数: pattern(模式):描述了表达式的模式 modifiers(修饰符):用于指定全局匹配、是否区分大小写的匹配和多行匹配 修饰符默认情况下是区分大小写的。 var regExp=new RegExp("javascript"); regExp=/javascript/; 2.正则表达式修饰符 修饰符用于执行区分大小写和全局匹配 2.正则表达式模式 (1)方括号 方括号用于查找某个范围内的字符 (2)元字符 元字符是拥有特殊含义的字符 (3)量词 三. RegExp对象方法 1.test()方法 语法:regExpObject.test(str) 检测字符串中是否存在正则表达式模式对应的匹配,返回值为布尔类型 每次执行test函数都只查找最多一个匹配

PHP 正则表达式匹配 preg_match 与 preg_match_all 函数

百般思念 提交于 2019-12-05 12:50:15
正则表达式在 PHP 中的应用 在 PHP 应用中,正则表达式主要用于: 正则匹配:根据正则表达式匹配相应的内容 正则替换:根据正则表达式匹配内容并替换 正则分割:根据正则表达式分割字符串 在 PHP 中有两类正则表达式函数,一类是 Perl 兼容正则表达式函数,一类是 POSIX 扩展正则表达式函数。二者差别不大,而且推荐使用Perl 兼容正则表达式函数,因此下文都是以 Perl 兼容正则表达式函数为例子说明。 定界符 Perl 兼容模式的正则表达式函数,其正则表达式需要写在定界符中。任何不是字母、数字或反斜线()的字符都可以作为定界符,通常我们使用 / 作为定界符。具体使用见下面的例子。 提示 尽管正则表达式功能非常强大,但如果用普通字符串处理函数能完成的,就尽量不要用正则表达式函数,因为正则表达式效率会低得多。关于普通字符串处理函数,请参见《 PHP 字符串处理 》。 preg_match() preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 。 语法: int preg_match( string pattern, string subject [, array matches ] ) 参数说明: 参数 说明 pattern 正则表达式 subject 需要匹配检索的对象 matches 可选,存储匹配结果的数组, $matches[0]

Intent Filter匹配原则

纵然是瞬间 提交于 2019-12-04 16:08:37
应用程序的组件为了告诉Android自己能响应、处理哪些隐式Intent请求,可以声明一个甚至多个Intent Filter。每个Intent Filter描述该组件所能响应Intent请求的能力——组件希望接收什么类型的请求行为,什么类型的请求数据。比如之前请求网页浏览器这个例子中,网 页浏览器程序的Intent Filter就应该声明它所希望接收的Intent Action是WEB_SEARCH_ACTION,以及与之相关的请求数据是网页地址URI格式。如何为组件声明自己的Intent Filter? 常见的方法是在AndroidManifest.xml文件中用属性<Intent-Filter>描述组件的Intent Filter。 前面我们提到,隐式Intent( Explicit Intents )和Intent Filter( Implicit Intents )进行比较时的三要素是Intent的动作、数据以及类别。实际上,一个隐式Intent请求要能够传递给目标组件,必要通过这三个方面的检查。如果任何一方面不匹配,Android都不会将该隐式Intent传递给目标组件。接下来我们讲解这三方面检查的具体规则。 1.动作测试 <intent-filter>元素中可以包括子元素<action>,比如: <intent-filter> <action android:name=