首页 > 试题广场 >

字符串通配符

[编程题]字符串通配符
  • 热度指数:182155 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}在计算机中,通配符是一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。让我们来学习通配符的匹配规则:
\hspace{23pt}\bullet\,\texttt{`*'} 符号代表匹配 0 个或以上的数字或字母;
\hspace{23pt}\bullet\,\texttt{`?'} 符号代表匹配 1 个数字或字母;
\hspace{23pt}\bullet\,小写字母字符代表匹配自身和自身的大写字母形态;
\hspace{23pt}\bullet\,大写字母字符代表匹配自身和自身的小写字母形态;
\hspace{23pt}\bullet\,其他字符代表匹配自身。

\hspace{15pt}现在,对于给定的通配符字符串 s 和目标字符串 p不考虑大小写,请判断 s 是否可以匹配得到 p。如果可以,输出 \rm true;否则,输出 \rm false

\hspace{15pt}在本题中,给定的字符串由 ASCII 码在 33126 范围内的可见字符构成。您可以参阅下表获得其详细信息(您可能关注的内容是,这其中不包含空格、换行)。
../图片/AllAscii.png

输入描述:
\hspace{15pt}第一行输入一个长度为 1 \leqq {\rm len}(s) \leqq 100、由可见字符构成的通配符字符串 s
\hspace{15pt}第二行输入一个长度为 1 \leqq {\rm len}(p) \leqq 100 、由可见字符构成的目标字符串 p


输出描述:
\hspace{15pt}如果可以匹配得到,输出 \textrm{true};否则,输出 \textrm{false}
示例1

输入

z
zz

输出

false
示例2

输入

Z*
zz

输出

true

说明

\hspace{15pt}在这个样例中,\texttt{`*'} 匹配 \texttt{`z'}。注意,由于不区分大小写,\texttt{`Z'} 可以匹配 \texttt{`z'}
示例3

输入

?*
zz

输出

true

说明

\hspace{15pt}在这个样例中,\texttt{`?'} 匹配 \texttt{`z'}\texttt{`*'} 匹配 \texttt{`z'}
示例4

输入

**Z
0QZz

输出

true

说明

\hspace{15pt}在这个样例中,其中一种匹配方法是:
\hspace{23pt}\bullet\,第一个 \texttt{`*'} 匹配 \texttt{
\hspace{23pt}\bullet\,第二个 \texttt{`*'} 匹配 \texttt{`Z'}
\hspace{23pt}\bullet\,第三个 \texttt{`Z'} 匹配 \texttt{`z'}
示例5

输入

??**
zz

输出

true

说明

\hspace{15pt}\texttt{`*'} 可以匹配 0 个字符。
示例6

输入

HH?*
HH##1

输出

false

说明

\hspace{15pt}可被 \texttt{`*'}\texttt{`?'} 匹配的字符不包含 \texttt{`\#'}

这道题你会答吗?花几分钟告诉大家答案吧!

问题信息

难度:
0条回答 36468浏览

热门推荐

通过挑战的用户

查看代码
字符串通配符