1003.我要通過(PAT)

来源:https://www.cnblogs.com/centuries/archive/2018/03/15/8577252.html
-Advertisement-
Play Games

1. 字元串中必須僅有P, A, T這三種字元,不可以包含其它字元; 2. 任意形如 xPATx 的字元串都可以獲得“答案正確”,其中 x 或者是空字元串,或者是僅由字母 A 組成的字元串; 3. 如果 aPbTc 是正確的,那麼 aPbATca 也是正確的,其中 a, b, c 均或者是空字元串, ...


 

題乾如下:

            1. 字元串中必須僅有P, A, T這三種字元,不可以包含其它字元;
             2. 任意形如 xPATx 的字元串都可以獲得“答案正確”,其中 x 或者是空字元串,或者是僅由字母 A 組成的字元串;
             3. 如果 aPbTc 是正確的,那麼 aPbATca 也是正確的,其中 a, b, c 均或者是空字元串,或者是僅由字母 A 組成的字元串。

      現在需要做的就是考慮哪些形式的字元串是正確的形式。首先看條件1,字元串中僅包含P,A,T三種字元,意味著如果出現其他字元那麼這個字元串肯定不滿足條件。再看條件2,任意XPATX的字元串符合條件,這個好理解,就是PAT的兩端要麼是空字元要麼是數量相等的A。最後比較關鍵的就是條件3,如果aPbTc是正確的,那麼aPbATca也是正確的,這裡很明顯,b字元串無法為空,並且如果a串不等於c串,那麼aPATc不正確(不滿足條件2)。所以我們先假設b串為“A”,a串等於c串,那麼aPATa是正確的,接著aPAAT(aa)也是正確的,繼續往下推導,aPAAT(aa)是正確的,那麼aPAAAT(aaa)是正確的,aPAAAT(aaa)是正確的,那麼aPAAAAT(aaaa)也是正確的......可以總結出形如aP(n個A)T(n個a)形式的字元串是正確的。

      綜上所述,字元串的要求:aP(n個A)T(n個a),其中a串為空或者A組成的字元串,n是大於等於0的整數。

      

 1 #include <iostream>
 2 using namespace std;
 3 int juge(char *s);
 4 int main(){
 5     int n,i;
 6     char s[10][105];
 7     cin>>n;
 8     for(i=0;i<n;i++)
 9       cin>>s[i];
10     for(i=0;i<n;i++){
11         if(juge(s[i]))
12           printf("YES\n");
13         else printf("NO\n");
14     }
15     return 0;
16 }
17 int juge(char *s){
18     int i,lena=0,lenb=0,len;
19     for(i=0;;i++){
20         if(s[i]=='A')               //a串中A的數目 
21          lena++;
22         else{
23         if(s[i]=='P')
24          break; 
25         else return 0;
26          }
27     }
28     for(i=i+1;;i++){
29         if(s[i]=='A')               //b串中A的數目 
30           lenb++;
31         else{
32         if(s[i]=='T')
33           break;
34         else return 0;
35         }
36     } 
37     if(lenb==0)  return 0;          //b為空串 
38     len = i +  lena*lenb+1; 
39     for(i=i+1;i<len;i++){           //ac串是否均為字元A 
40         if(s[i]=='A')
41           continue;
42         else return 0;
43     }
44     if(s[len]=='\0') return 1;      //是否到達字元串底部      
45     else return 0;
46 } //AC

題目鏈接:https://www.patest.cn/contests/pat-b-practise/1003

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.request.getParameter()在get和post方法中文亂碼問題。 參考網址:http://blog.csdn.net/u013476542/article/details/52845547 2.解決windows下tomcat埠被占用 參考網址:http://blog.csdn ...
  • 本篇總結關於http的相關知識,主要內容參考如下導圖: 主要講解的內容有: 1 URL與URI的區別。 2 請求報文與相應報文的內容。 3 GET與POST的區別。 4 http的cookie、持久化、管道化、多部分對象集合、範圍請求等。 後續會更新http其他的相關知識。 關鍵詞概念 平時會經常接 ...
  • 前言 本文主要是講解在Controller中的開發,主要的知識點有如下: 編碼過濾器 使用註解開發 註解 詳解 業務方法接收參數 字元串轉日期 重定向和轉發 返回JSON SpringMVC過濾編碼器 在SpringMVC的控制器中,如果沒有對編碼進行任何的操作,那麼獲取到的中文數據是亂碼! 即使我 ...
  • C語言中的const並不是真正意義上的const,C語言中const變數是只讀變數,有自己的存儲空間,在C語言中,仍然可以通過間接賦值修改a的值。 實際上,在C++語言中,const建立的是一個符號表。用指針間接賦值的時候,會重新開闢一塊記憶體空間,間接修改a的值只是修改了,新開闢的記憶體空間的值,和原 ...
  • 本文較為詳細地介紹了Scala的理論,並結合相應的代碼進行解讀與實踐。文章內容主要包含Scala的簡介,數據類型,函數(函數定義、匿名函數、嵌套函數、迴圈語句等),集合(List、Tuple、Map),伴生對象,trait,Actor,隱式轉換,JDBC等。 ...
  • 看一次哭一次網址: https://www.bilibili.com/bangumi/play/ss836/?from=search&seid=4709676986893938334 4月出第二部! 聲臨其境,有一個人能配石頭門第22集嗎? 發Python上了,不喜歡求舉報 ...
  • 1. 啟動報錯,查看debug $ java -jar myproject-0.0.1-SNAPSHOT.jar –debug 2.自定義banner The banner that is printed on start up can be changed by adding a banner.t ...
  • While 迴圈語句 用於迴圈執行程式,即在某條件下,迴圈執行某段程式,以處理需要重覆處理的相同任務。 語法: 執行語句可以是單個語句或語句塊。判斷條件可以是任何表達式,任何非零、或非空(null)的值均為true。 當判斷條件假false時,迴圈結束。 示例:for迴圈實現猜字游戲 while 實 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...