首页 > 试题广场 >

模糊匹配

[编程题]模糊匹配
  • 热度指数:39 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}不要混淆 “ICPC” 跟 “lCPC” 哦!
\hspace{15pt}车牌号、注册码、序列号等字符串通常包含阿拉伯数字和大小写不一的拉丁字母。人们手工录入这些字符串时,常常会出错,比如混淆大写字母 “O” 和数字 “0”,或者混淆大写字母 “I”、小写字母 “l” 和数字 “1”。
\hspace{15pt}你需要判断长度相等的两个字符串 s_1s_2 是否相同,但要忽略以上由手工录入带来的错误。换句话说,你应当认为 “O”、“0” 相同,“I”、“l”、“1” 相同。

输入描述:
\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T1 \le T \le 10^3)代表数据组数,每组测试数据描述如下:

\hspace{15pt}第一行输入一个整数 n1 \le n \le 100),表示字符串 s_1s_2 的长度。
\hspace{15pt}第二行输入一个长度为 n,仅包含拉丁字母和阿拉伯数字的字符串 s_1
\hspace{15pt}第三行输入一个长度为 n,仅包含拉丁字母和阿拉伯数字的字符串 s_2


输出描述:
\hspace{15pt}对于每一组测试数据,新起一行。如果字符串 s_1s_2 相同,则在一行中输出 “YES”(不含引号);否则,输出 “NO”(不含引号)。

\hspace{15pt}你可以输出 “YES” 或 “NO” 的任意大小写形式。例如,字符串 “yEs”、“yes”、“Yes”、“YES” 都视为肯定回答。另外,为了契合本题风格,字符串 “N0”、“n0” 也视为和 “NO” 一样的否定回答。
示例1

输入

4
9
Apple0123
Apple0123
5
AKIOI
AK101
10
ilovezaoly
1loveza0Iy
6
banana
BANANA

输出

YES
YES
NO
NO

说明

\hspace{15pt}对于第一组测试数据,两个字符串完全相同。

\hspace{15pt}对于第三组测试数据,小写字母 “i” 不易跟数字 “1” 混淆,因此 “i” 和 “1” 不应认为相同;同理,“o” 和 “0” 也不应认为相同。

\hspace{15pt}对于第四组测试数据,同一字母的不同大小写是不同的。
头像 Anoth3r
发表于 2026-01-30 21:00:02
小白月赛 Round 128 题解 由于牛客的渲染问题,你可以点此链接进入我的博客查看 A 模糊匹配 手写一下模糊比较函数即可。 void solve() { int n; string s1, s2; cin >> n >> s1 >> 展开全文
头像 银当taki
发表于 2026-02-04 12:33:21
A 最小表示法 字符串匹配 长得像的字母和数字被认为是一样的,问两个串是否相同。 比较简单的写法是类似最小表示法的思想。规定每一组相似字符,都变成其中某一个字符,然后看是否严格相等即可 void solve() { int n; cin >> n; string s1, s2; 展开全文