題目連結:
題目大意:
給定一個長度為 10 ~ 30 個字元,只由阿拉伯數字 1 ~ 9 組成的字串 S 。判斷 S 是否為含有密碼的字串,並輸出密碼。
判斷方法如下:
字串 S 必須是迴文,也就是由左至右讀與由右至左讀是一樣的。而且每組相鄰的數字,右邊的數字不會大過左邊數字的兩倍。若皆符合,那麼 S 包含密碼。
而擷取密碼的方式為:
把字串 S 裡面,是偶數的數字通通拿出來,排成一列就是密碼。如果沒有數字是偶數,則為「0」。
如果 S 不是含有密碼的字串,輸出「INCORRECT」;反之,輸出密碼。
範例輸入:
輸入範例一:
154321123451
輸入範例二:
123456777654321
範例輸出:
輸出範例一:
INCORRECT
輸出範例二:
246642
解題思維:
在判斷是否為迴文時,迴圈可以從字串中間開始判斷就可以了。然後看此位的字元與相對應的位元是否相同。若不同就不是迴文,因此就不是含有密碼的字串。
再來,用迴圈再次尋找看看是否有數字大於前一位的兩倍。如果有,也非包含密碼的字串。
如果是用另一變數存放密碼字串裡的偶數數字。若變數為空字串,密碼則為「0」;反之,直接輸出變數內容。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。