切換
舊版
前往
大廳
主題

ZeroJudge - d535: 2. 密碼驗證與擷取 解題心得

Not In My Back Yard | 2018-11-11 11:14:19 | 巴幣 0 | 人氣 184

題目連結:


題目大意:
給定一個長度為 10 ~ 30 個字元,只由阿拉伯數字 1 ~ 9 組成的字串 S 。判斷 S 是否為含有密碼的字串,並輸出密碼。

判斷方法如下:
字串 S 必須是迴文,也就是由左至右讀與由右至左讀是一樣的。而且每組相鄰的數字,右邊的數字不會大過左邊數字的兩倍。若皆符合,那麼 S 包含密碼。

而擷取密碼的方式為:
把字串 S 裡面,是偶數的數字通通拿出來,排成一列就是密碼。如果沒有數字是偶數,則為「0」。

如果 S 不是含有密碼的字串,輸出「INCORRECT」;反之,輸出密碼。



範例輸入:
輸入範例一:
154321123451

輸入範例二:
123456777654321



範例輸出:
輸出範例一:
INCORRECT

輸出範例二:
246642



解題思維:
在判斷是否為迴文時,迴圈可以從字串中間開始判斷就可以了。然後看此位的字元與相對應的位元是否相同。若不同就不是迴文,因此就不是含有密碼的字串。

再來,用迴圈再次尋找看看是否有數字大於前一位的兩倍。如果有,也非包含密碼的字串。

如果是用另一變數存放密碼字串裡的偶數數字。若變數為空字串,密碼則為「0」;反之,直接輸出變數內容。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作