1. 字串中必須僅有p, a, t這三種字元,不可以包含其它字元;
2. 任意形如 xpatx 的字串都可以獲得「答案正確」,其中 x 或者是空字串,或###者是僅由字母 a 組成的字串;
3. 如果 apbtc 是正確的,那麼 apbatca 也是正確的,其中 a, b, c 均或者是空字串,或者是僅由字母 a 組成的字串。輸入格式: 每個測試輸入包含1個測試用例。第1行給出乙個自然數n (<10),是需要檢測的字串個數。接下來每個字串佔一行,字串長度不超過100,且不包含空格。
輸出格式:每個字串的檢測結果佔一行,如果該字串可以獲得「答案正確」,則輸出yes,否則輸出no。
輸入樣例:
8輸出樣例:pat
paat
aapataa
aapaataaaa
xpatx
pt whatever
apaaataa
yesyes
yes
yes
no no
no no
#include
#include
#include
int main()
//如果不是p a t 直接輸出no
}if(b==1&&c==1&&a!=0)//乙個p和t的基礎上,p前a的個數乘以p——t間a的個數等於t後a的個數則為yes
if(flag)printf("yes\n");
else
printf("no\n");
}return
0;}
這裡應用了strchr( )函式如果是同乙個陣列內的兩個指標相減,得到的是返回值是整型,為兩個位址間距離具體用法:
查詢字串s中首次出現字元c的位置。
extern char *strchr(const char *s,char c)
功能:查詢字串s中首次出現字元c的位置
說明:返回首次出現c的位置的指標,返回的位址是被查詢字串指標開始的第乙個與val相同字元的指標,如果s中不存在c則返回null。
返回值:成功則返回要查詢字元第一次出現的位置,失敗返回null
大減小,為正,反之,為負。
例如
if(b==1&&c==1&&a!=0)這裡p1就是第一次出現p的位址,應該是『2』(從2開始),s的位址應該是『0』(從0開始),p1-s的返回值為整數2,如果s-p1則為『-2』.
指標也是可以相減的
1003 我要通過! 20
pat1003 規則1和2是基本要求 規則3 apbtc apbatca,那麼可以逆推 apbatca 到 apbtc,直到 a pata 這種形式,說明源字串是符合要求的 詳細說明 apbtc,則b中每次減少乙個a,c中減少a字串,直到cpatd形式,若c d,則說明滿足規則2,即原串符合要求 i...
1003 我要通過! 20
先貼上題目 這個題目從開始思考,到最終得到 答案正確 的時間跨度很長,主要原因有 1.題目要求分析不清 2.實現時,出現幾個困難點 1 如何讀入多個字串?最初出現問題可能是由於沒有注意到題目中要求字串長度不超過100 2 陣列元素個數未知,如何避免出現錯誤?this is the code.incl...
1003 我要通過! 20
這道題題目有點難懂,只能總結出規律 設p前面 的個數為 和 之間的a的個數為b t後面的個數為c 結論 a b c 通過第二條 這裡注意兩個x是乙個變數 可以得到 n 1 n是正確的 第三條說明 n 2 2n是正確的把這一條繼續帶入第三條 得到 n 3 3n是正確的。結果顯而易見。include u...