給定多個由數字組成的字符串,根據其前綴/後綴模式判斷屬於哪一類「秘密代碼」,並輸出對應符號:
+:字符串為 "1"、"4" 或 "78"-:以 "35" 結尾*:以 '9' 開頭且以 '4' 結尾?:以 "190" 開頭輸入第一行為測試用例數 t,隨後每行一個字符串。
題目屬於典型的字符串模式識別「水題」,無需複雜算法,只需按優先級順序檢查上述條件。注意 + 的三種情況需優先判斷,否則 "78" 可能被誤判為其他類別。
#include#include int main() { int t; char s[1000]; scanf("%d", &t); while (t--) { scanf("%s", s); int len = strlen(s); // 優先級 1:精確匹配 + 開頭為 190 if ((s[0] == '1' && len == 1) || (s[0] == '4' && len == 1) || (s[0] == '7' && s[1] == '8' && len == 2)) { printf("+\n"); } // 優先級 2:以 35 結尾 else if (len >= 2 && s[len-2] == '3' && s[len-1] == '5') { printf("-\n"); } // 優先級 3:9 開頭 4 結尾 else if (s[0] == '9' && s[len-1] == '4') { printf("*\n"); } // 優先級 4:190 開頭 else if (len >= 3 && s[0] == '1' && s[1] == '9' && s[2] == '0') { printf("?\n"); } } return 0; }
char s[1000] 足夠。s[len-2] 等。