当前位置: 首页 > news >正文

UVa 384 Slurpys

题目描述

基于一组约束识别字符串是一个常见的计算问题。

Slurpy\texttt{Slurpy}Slurpy是一种具有特定属性的字符串。你的程序将读取字符串并判断它们是否为Slurpy\texttt{Slurpy}Slurpy

定义

Slump\texttt{Slump}Slump是一个满足以下属性的字符串:

  1. 第一个字符是DE
  2. 第一个字符后跟一个或多个F
  3. F的序列后跟一个Slump\texttt{Slump}Slump或一个G,以此结束整个Slump\texttt{Slump}Slump
  4. 除此之外都不是Slump\texttt{Slump}Slump

例如:DFFEFFFG是一个Slump\texttt{Slump}Slump(以D开头,后跟两个F,再跟Slump\texttt{Slump}SlumpEFFFG

Slimp\texttt{Slimp}Slimp是一个满足以下属性的字符串:

  1. 第一个字符是A
  2. 如果是两个字符的Slimp\texttt{Slimp}Slimp,则第二个字符是H
  3. 如果不是两个字符,则属于以下两种形式之一:
    • A+B+Slimp\texttt{Slimp}Slimp+C
    • A+Slump\texttt{Slump}Slump+C
  4. 除此之外都不是Slimp\texttt{Slimp}Slimp

Slurpy\texttt{Slurpy}Slurpy是一个由Slimp\texttt{Slimp}Slimp后跟Slump\texttt{Slump}Slump组成的字符串。

输入格式

第一行包含整数NNN1≤N≤101 \leq N \leq 101N10),表示字符串数量。接下来NNN行,每行包含一个由字母组成的字符串(长度1∼601 \sim 60160)。

输出格式

第一行输出SLURPYS OUTPUT。接下来NNN行,每行输出YESNO。最后一行输出END OF OUTPUT

样例输入

2 AHDFG DFGAH

样例输出

SLURPYS OUTPUT YES NO END OF OUTPUT

题目分析

问题的本质

这是一个递归下降解析问题。需要根据给定的上下文无关文法判断字符串是否属于定义的语言。

文法规则

Slump → D F+ (Slump | G) Slimp → A H | A B Slimp C | A Slump C Slurpy → Slimp Slump

解析方法

使用递归下降解析器,维护一个全局位置指针,尝试匹配规则。


参考代码

// Slurpys// UVa ID: 384// Verdict: Accepted// Submission Date: 2016-06-30// UVa Run Time: 0.000s//// 版权所有(C)2016,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;boolisC();boolisSlump();boolisSlimp();boolisSlurpy();string line;intposition;// 解析字符 'C'boolisC(){if(position<line.length()&&line[position]=='C'){position++;returntrue;}returnfalse;}// 解析 Slump: D/E F+ (Slump | G)boolisSlump(){if(position>=line.length())returnfalse;if(line[position]!='D'&&line[position]!='E')returnfalse;position++;// 至少一个 FboolatLeastOneF=false;while(position<line.length()&&line[position]=='F'){atLeastOneF=true;position++;}if(!atLeastOneF)returnfalse;// 以 G 结尾if(position<line.length()&&line[position]=='G'){position++;returntrue;}// 或者后面跟一个 SlumpreturnisSlump();}// 解析 Slimp: A H | A B Slimp C | A Slump CboolisSlimp(){if(position>=line.length()||line[position]!='A')returnfalse;position++;// 情况1:AHif(position<line.length()&&line[position]=='H'){position++;returntrue;}// 情况2:A B Slimp Celseif(position<line.length()&&line[position]=='B'){position++;if(!isSlimp())returnfalse;if(position<line.length()&&line[position]=='C'){position++;returntrue;}returnfalse;}// 情况3:A Slump Celse{if(!isSlump())returnfalse;if(position<line.length()&&line[position]=='C'){position++;returntrue;}returnfalse;}}// 解析 Slurpy: Slimp + SlumpboolisSlurpy(){intsavedPos=position;if(isSlimp()&&isSlump()&&position==line.length())returntrue;position=savedPos;returnfalse;}intmain(intargc,char*argv[]){ios::sync_with_stdio(false);string firstLine;getline(cin,firstLine);intn=stoi(firstLine);cout<<"SLURPYS OUTPUT"<<endl;for(inti=1;i<=n;i++){getline(cin,line);position=0;cout<<(isSlurpy()?"YES":"NO")<<endl;}cout<<"END OF OUTPUT"<<endl;return0;}
http://www.rkmt.cn/news/1461323.html

相关文章:

  • 【Agent实战】Agent Skills 深度解析:从原理到落地的完整指南
  • 看完就会:2026年闭眼可入的专业AI论文网站
  • 如何在10分钟内为OBS Studio添加现代化网页集成功能?
  • Python入门:VS Code配置Python开发环境全攻略
  • 内核级硬件伪装技术深度解析:EASY-HWID-SPOOFER实现机制揭秘
  • 2026营销策划岗位最重要的职场能力有哪些
  • 论文中卷积神经网络常见的示意图用什么软件来画比较容易?
  • 如何在Windows 11任务栏实现沉浸式歌词显示:Taskbar-Lyrics完全指南
  • MATLAB版SRCNN超分重建工具包:一键运行+操作视频+21张测试图
  • 树莓派智能拍照亭:从GPIO控制到图像处理的嵌入式开发实践
  • AI赋能下载:让快马平台生成具备智能解析与安全扫描的下载助手
  • Kafka Exporter:构建企业级Kafka监控体系的终极解决方案
  • 基于Pixy2视觉传感器与Arduino的物体跟随机器人实战指南
  • 从Jedis切换到Lettuce后,我的Redis客户端为啥‘感知’不到集群变化了?
  • 2026年必看!专业光催化氙灯光源方案大推荐,实用又靠谱!
  • 2026年河南珍珠棉包装材料采购指南:防撞冷链保温方案全景解读 - 优质企业观察收录
  • 如何利用开源音乐播放器 LX Music Desktop 构建你的个性化音乐生态系统
  • STM32F407音频实时采集与播放系统:从ADC/DAC到DMA双缓冲的嵌入式实战
  • AI赋能站长开发:对话快马AI,定制具备智能交互效果的iuiucom官网登录页
  • U-mamba环境配置与训练ubuntu24.4+python3.10+torch2.1.1
  • 墨西哥语音服务:出海企业通信痛点、成因与解决方案
  • 钢结构、工字钢与H型钢之间的区别
  • 毫厘不差,精工万量,助力中国高端制造腾飞。
  • 2026 潮州防水修缮指南|厨卫 / 楼顶 / 外墙 / 地下室堵漏|苏易修缮全域上门 - 苏易修缮
  • 终极宝可梦3DS游戏编辑器:pk3DS完全改造指南
  • 2026年成都空气净化/CMA检测公司优选调研:本土服务商盘点数据测评 - 深度智识库
  • 免费德州扑克GTO求解器:5步从新手到高手的终极指南
  • 香港身份,2026年新风口:普通人也能抓住的黄金跳板
  • 2026年长治市黄金回收白银回收铂金回收门店 TOP5榜单无套路:实体店铺地址电话一览 - 诚金汇钻回收公司
  • 2026年武汉黄金回收怎么选不后悔?实地走访8家后的真诚推荐 - 生活测评君