[HackerRank]有趣的字串(Funny String)

題目描述

假設有個字串S和其反轉之後的字串R。如果S字串中的每個字元和其前一個字元的字元值之差的絕對值都與字串R中對應相同索引值的字元和其前一個字元的字元值之差的絕對值是相等的,我們可以說這個字串S是個「有趣的」字串。

原題網址

https://www.hackerrank.com/challenges/funny-string/

輸入格式

第一行為一個整數T,表示有幾組測試資料,範圍在1到10之間(包含1和10)。接下來的T行,每行都是一個要測試的字串,長度在2到10000之間(包含2和10000)。

輸出格式

分行輸出每組輸入字串測試的結果。如果是「有趣的」字串,輸出「Funny」;如果不是「有趣的」字串,輸出「Not Funny」。

範例輸入

2
acxz
bcxz

範例輸出

Funny
Not Funny

額外解釋

「acxz」的反轉字串是「zxca」,從第二個(索引1)字元開始看,「c」和「a」差2,「x」和「z」差2。再看第三個字元,「x」和「c」差21,「c」和「x」差21。再看第四個字元,「z」和「x」差2,「c」和「a」差2。所以「acxz」是「有趣的」字串。

「bcxz」的反轉字串是「zxcb」,從第二個(索引1)字元開始看,「c」和「b」差1,「x」和「z」差2。所以「bcxz」不是「有趣的」字串。

解題概念

讀入字串S之後,使用迴圈去計算從頭開始和從尾開始兩兩字元值之差的絕對值。如果發現絕對值不相等,就直接輸出「Not Funny」;如果一直到迴圈結束都沒發現不相等的絕對值,輸出「Funny」。

參考答案

關於作者

Magic Len

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章