题解 AT3602 【AKIBA】
你们 python
java
都用 c++
没有正则表达式了!
c++
中的正则表达式需要包含头文件 <regex>
,然后就可以声明某个正则表达式:
regex name(^value$); // 其中^与$均可省略,^代表开始,$代表结束
如:
regex reg("^abc+$");
那么这里可以匹配的字符串就有:
abc
abcc
abccc
abcccc
abccccc
abcccccc
abccccccc
以及其他前面ab并且后面有大于等于1个的c
那么正则表达式还有一个重要字符 ?
,它代表前面括号中(如果没有括号就是前一个字符)的字符串有也可以没有,所以对于正则表达式 ab(cc)?
, abcc
与 ab
均可以匹配,而 abc
则不能匹配。
那么如何判断某个字符串与某个正则表达式匹配?我们需要用到函数 regex_match
,其函数通常为两个,第一个是需要匹配的字符串,第二个是正则表达式,返回值为 bool
类型,匹配成功返回 true
,否则返回 false
。
其实正则表达式还有很多其他符号与函数,可以自行百度。
所以本题其实可以用正则表达式做:
#include <regex>
#include <iostream>
#include <string>
using namespace std;
int main()
{
regex reg("^A?KIHA?BA?RA?$");
string st;
cin >> st;
if(regex_match(st, reg))
{
cout << "YES\n";
}
else
{
cout << "NO\n";
}
return 0;
}
码字不易,求赞!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)