题解 AT3602 【AKIBA】

你们 python java 都用 正则表达式\large \color{red} \text{正则表达式},不要以为 c++ 没有正则表达式了!

c++ 中的正则表达式需要包含头文件 <regex>,然后就可以声明某个正则表达式:

regex name(^value$); // 其中^与$均可省略,^代表开始,$代表结束

如:
regex reg("^abc+$");

那么这里可以匹配的字符串就有:

abc
abcc
abccc
abcccc
abccccc
abcccccc
abccccccc
以及其他前面ab并且后面有大于等于1个的c

那么正则表达式还有一个重要字符 ?,它代表前面括号中(如果没有括号就是前一个字符)的字符串有也可以没有,所以对于正则表达式 ab(cc)?abccab 均可以匹配,而 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;
}

码字不易,求赞!

posted @   HappyBobb  阅读(2)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示