📅  最后修改于: 2023-12-03 15:10:57.764000             🧑  作者: Mango
正则表达式(Regular Expression,RE),又称正规表示式、常规表示法、正规表示法、规则(Rule)等,是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。正则表达式通常用来检索、替换那些符合某个模式(规则)的文本。
下面是一些常用的正则表达式元字符:
.
:匹配任意单个字符,除了换行符。*
:匹配前面的字符零次或多次。+
:匹配前面的字符一次或多次。?
:匹配前面的字符零次或一次。^
:匹配字符串的开头。$
:匹配字符串的结尾。[]
:字符集合,匹配方括号中的任意一个字符。()
:捕获组,用来提取匹配的文本。下面是一些正则表达式的实例:
^A
B$
.*a.*
^[0-9]*$
^1[3|4|5|7|8]\d{9}$
二部图是图论中的一种特殊图,可以表示为一个二元组 $(V,E)$,其中 $V=X\cup Y$,$E\subseteq X\times Y$,且对于 $e\in E$,容易知道 $(x,y)$ 一定有一个数在 $X$ 中,另一个数在 $Y$ 中。
二部图中的节点可以分为两类,即 $X$ 中的节点和 $Y$ 中的节点。如果一个节点 $x_i$ 和另一个节点 $y_j$ 之间有边相连,那么就表示 $x_i$ 和 $y_j$ 之间有某种关联。
在计算机科学中,二部图有着广泛的应用,如:
在 Python 中,二部图的实现可以用 NetworkX 库来实现。具体代码如下:
import networkx as nx
# 创建二部图
G = nx.Graph()
# 添加 X 节点
X = ["A", "B", "C"]
G.add_nodes_from(X, bipartite=0)
# 添加 Y 节点
Y = [1, 2, 3]
G.add_nodes_from(Y, bipartite=1)
# 添加边
edges = [("A", 1), ("B", 2), ("C", 3)]
G.add_edges_from(edges)
# 输出二部图信息
print(nx.info(G))
print(nx.is_bipartite(G))
print(nx.bipartite.sets(G))
其中,G
表示二部图,X
表示 $X$ 节点,Y
表示 $Y$ 节点,edges
表示节点之间的关联。输出结果如下:
Name:
Type: Graph
Number of nodes: 6
Number of edges: 3
Average degree: 1.0000
True
({'A', 'B', 'C'}, {1, 2, 3})
可以看到,该二部图共有 6 个节点,3 条边,是一个合法的二部图。