1003 我要通过

简介: 1003 我要通过

题目描述

题目所在的链接,点进去察看题目

解题思路

第一步:查找字符串中除PAT之外的字符,如果存在就NO,在查找的过程中,PT只出现1一次,A至少存在一次,如果不满足NO

第二步:

经分析,如果要YES,我们可以得到,1.c是a的倍数(c,a不为0时),最终得到a,c相等且b=1的状态。2.a,c都为0时,b的值随便(在上一步时判断了,b肯定不为0)。除此之外都是NO。

代码有解释

代码实现

#include <stdio.h>

int main()
{
  int n,a,b,c;
  scanf("%d", &n);
  char arr[10][100];
  int i = 0;
  for (i=0;i<n;i++)
  {
    scanf("%s", arr[i]);
  }
  i = 0;
  //统计P,T前a,中b,后c中A的个数
  while (i<n)
  {
    a = 0; b = 0; c = 0;
    char* temp = (char*)arr[i];
    //第一步开始进行判断
    while (*temp)
    {
      if (*temp == 'A')
        a++;
      else if (*temp == 'P')
        b++;
      else if (*temp == 'T')
        c++;
      else//不是这3个字符时跳出
        break;
      temp++;
    }
    //下面排除多P多T没有A的情况
    if (b!=1||c!=1||a==0)
    {
      printf("NO\n");
      i++;
    }
    //除PAT之外的字符
    else if (*temp!='\0')
    {
      printf("NO\n");
      i++;
    }
    //只含PAT的字符
    else
    {
      a = 0; b = 0; c = 0;
      temp = (char*)arr[i];
      //P前面的A的个数
      while (*temp++ != 'P'&& *temp)
      {
        a++;
      }
      //P与T之间的A的个数
      while (*temp++ != 'T' && *temp)
      {
        b++;
      }
      //T之后的A的个数
      while (*temp)
      {
        c++;
        temp++;
      }
      //变成aPbTc,其中a与c相等
      while (c)
      {
        if (a && c && c != a && c % a == 0)
        {
          c = c - a;
          b--;
        }
        else
          break;
      }
      if (b == 1&& c == a)//满足aPbTc的形式
        printf("YES\n");
      else if (a == 0&& c == a)//满足PbT的形式
        printf("YES\n");
      else//错误形式
        printf("NO\n");
      i++;
    }
  }
  return 0;
}

相关文章
|
12月前
|
JSON 文字识别 API
如何提取手写票据信息
本文主要讲述在处理票据信息结构化提取任务时,如何结合OCR(光学字符识别)技术和多模态大模型Qwen-VL来提高票据信息提取的准确性和效率。
580 17
|
机器学习/深度学习 算法 PyTorch
在Python中使用LSTM和PyTorch进行时间序列预测
在Python中使用LSTM和PyTorch进行时间序列预测
|
应用服务中间件 Linux 网络安全
在Linux中,如何配置Apache或Nginx Web服务器?
在Linux中,如何配置Apache或Nginx Web服务器?
|
JavaScript
vue3 中借助 tsx 使用 JSX (以实现字体下拉选择为例)
vue3 中借助 tsx 使用 JSX (以实现字体下拉选择为例)
260 0
|
SQL 运维 关系型数据库
记一次 MySQL 主从同步异常的排查记录,百转千回!
这篇文章主要讲述了在 MySQL 主从同步过程中遇到的一个问题,即从库的 SQL 线程因 Relay Log 损坏导致同步停止。作者首先介绍了现象,从库的 Slave_IO_Running 正常,但 Slave_SQL_Running 停止,报错信息提示可能是 binlog 或 relay log 文件损坏。
621 7
|
Ubuntu Linux Shell
linux免交互登陆远程主机并执行命令(密钥对和Expect)
linux免交互登陆远程主机并执行命令(密钥对和Expect)
|
安全 关系型数据库 MySQL
mysql服务器hang死的原因
mysql服务器hang死的原因
294 0
|
人工智能 小程序 Shell
开源shell脚本系列-检查etcd集群可用性
开源shell脚本系列-检查etcd集群可用性
|
供应链
福州:硬核!十条措施支持中小微企业应对疫情共渡难关!
福州十条措施支持中小微企业应对疫情共渡难关!
福州:硬核!十条措施支持中小微企业应对疫情共渡难关!
|
安全 物联网 Linux
Mentor面向智能家居的IoT方案
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。
1238 2