博客
关于我
【PAT乙级】1003 我要通过!
阅读量:190 次
发布时间:2019-02-28

本文共 1941 字,大约阅读时间需要 6 分钟。

为了解决这个问题,我们需要编写一个自动裁判程序,判断给定的字符串是否满足特定的条件,从而输出“答案正确”或“答案错误”。

方法思路

  • 输入处理:读取输入的字符串数量和每个字符串。
  • 字符检查:确保字符串只包含P、A、T三种字符。
  • 统计字符:统计字符串中P、A、T各自的数量,并检查是否存在至少一个P和一个T。
  • 结构检查:根据题目条件,检查字符串的结构是否符合要求。具体来说,P前面的A的数量乘以P和T之间的A的数量必须等于T后面的A的数量,并且P和T之间必须至少有一个A。
  • 解决代码

    #include 
    #include
    #include
    using namespace std;int main() { int t; cin >> t; for (int i = 0; i < t; ++i) { string s; cin >> s; bool valid = true; // 检查是否只包含P、A、T for (char c : s) { if (c != 'P' && c != 'A' && c != 'T') { valid = false; break; } } if (!valid) { cout << "NO" << endl; continue; } // 统计P、A、T的数量 int P = 0, A = 0, T = 0; int aqnum = 0, aznum = 0, ahnum = 0; // 遍历字符串 for (int j = 0; j < s.size(); ++j) { if (s[j] == 'P') { ++P; } else if (s[j] == 'A') { ++A; } else if (s[j] == 'T') { ++T; } } if (P == 0 || T == 0) { cout << "NO" << endl; continue; } // 统计各个部分的A的数量 int left = 0; int mid = 0; int right = 0; for (int j = 0; j < s.size(); ++j) { if (s[j] == 'A') { if (j < P) { left++; } else if (j > P && j < T) { mid++; } else if (j > T) { right++; } } } // 检查条件 if (aznum > 0 && aqnum * aznum == ahnum) { cout << "YES" << endl; } else { cout << "NO" << endl; } }}

    代码解释

  • 输入处理:读取字符串数量t,然后逐个读取每个字符串s
  • 字符检查:遍历字符串,检查是否只包含P、A、T三种字符。如果有其他字符,标记为无效并输出“NO”。
  • 统计字符:统计字符串中P、A、T的数量。如果P或T的数量为0,直接输出“NO”。
  • 结构检查:统计P前面的A的数量(left),P和T之间的A的数量(mid),以及T后面的A的数量(right)。然后检查是否满足条件,即left * mid == rightmid > 0。满足条件则输出“YES”,否则输出“NO”。
  • 转载地址:http://nqoi.baihongyu.com/

    你可能感兴趣的文章
    NUUO网络视频录像机 css_parser.php 任意文件读取漏洞复现
    查看>>
    Nuxt Time 使用指南
    查看>>
    NuxtJS 接口转发详解:Nitro 的用法与注意事项
    查看>>
    NVDIMM原理与应用之四:基于pstore 和 ramoops保存Kernel panic日志
    查看>>
    NVelocity标签使用详解
    查看>>
    NVelocity标签设置缓存的解决方案
    查看>>
    Nvidia Cudatoolkit 与 Conda Cudatoolkit
    查看>>
    NVIDIA GPU 的状态信息输出,由 `nvidia-smi` 命令生成
    查看>>
    nvidia 各种卡
    查看>>
    Nvidia 系列显卡大解析 B100、A40、A100、A800、H100、H800、V100 该如何选择,各自的配置详细与架构详细介绍,分别运用于哪些项目场景
    查看>>
    NVIDIA-cuda-cudnn下载地址
    查看>>
    nvidia-htop 使用教程
    查看>>
    nvidia-smi 参数详解
    查看>>
    Nvidia驱动失效,采用官方的方法重装更快
    查看>>
    nvmw安装node-v4.0.0之后版本的临时解决办法
    查看>>
    nvm切换node版本
    查看>>
    nvm安装 出现 Error retrieving “http://xxxx/SHASUMS256.txt“: HTTP Status 404 解决方法
    查看>>
    nvm安装以后,node -v npm 等命令提示不是内部或外部命令 node多版本控制管理 node多版本随意切换
    查看>>
    NXLog采集windows日志配置conf文件
    查看>>
    ny540 奇怪的排序 简单题
    查看>>