內容 :
迴文是運用相同詞彙、相反順序組合而成的語句,是一種修辭法,也有人把它當做文字遊戲。
一個迴文可以是一個句子:「上海自來水來自海上」;也可以分為上下兩句:「人人為我,我為人人。」甚至可以是一首詩:
枯眼望遙山隔水,往來曾見幾心知。
壺空怕酌一杯酒,筆下難成和韻詩。
迷路阻人離別久,訊音無雁寄回遲。
孤燈夜守長寥寂,夫憶妻兮父憶兒。
兒憶父兮妻憶夫,寂寥長守夜燈孤。
遲回寄雁無音訊,久別離人阻路迷。
詩韻和成難下筆,酒杯一酌怕空壺。
知心幾見曾來往,水隔山遙望眼枯。
輸入說明 :
第一行有一個整數 T,代表接下來有幾組測試資料。
每一組測試資料有一個字串,字串是由小寫的英文字母所組成,每個字串的長度不會超過 100。
輸出說明 :
對每筆測試資料判斷是不是迴文 (字串正著讀和反著讀是否一樣) :如果是的話就輸出 “yes”,否則就輸出 “no”。
範例輸入 :
3
abcba
abba
abc
範例輸出 :
yes
yes
no
出處 :
2010 NPSC 國中組初賽 (管理:pcshic)
Private Sub Form_Load()
回覆刪除Me.Hide
Open App.Path & "\in.txt" For Input As #1
Open App.Path & "\out.txt" For Output As #2
Input #1, N
For i = 1 To N
Line Input #1, X
If Check(X) = True Then Print #2, "yes" Else Print #2, "no"
Next i
Close #2
Close #1
End
End Sub
Function Check(A) As Boolean
P = True
For i = 1 To (Len(A)) \ 2
If Mid(A, i, 1) <> Mid(A, Len(A) - i + 1, 1) Then P = fasle
Next i
Check = P
End Function
Private Sub Form_Load()
回覆刪除Me.Hide
Open App.Path & "\in.txt" For Input As #1
Open App.Path & "\out.txt" For Output As #2
Input #1, t
For i = 1 To t
Input #1, n
If Len(n) Mod 2 = 0 Then m = Int(Len(n) / 2) Else m = Int(Len(n) / 2) + 1
If Run(n, m) = 0 Then Print #2, "yes" Else Print #2, "no"
Next
Close
Close
End
End Sub
Function Run(n, m)
Print m
L = Left(n, m)
r = Right(n, m)
For i = 1 To Len(r): nr = Mid(r, i, 1) & nr: Next
r = nr
If L = r Then Run = 0 Else Run = 1
End Function
佑好,
回覆刪除1程式ok。
2函數檢查地方,一旦檢查到不合的地方,除了設定false之外,還是加上exit for,加快一些些速度。
arro好,
1程式ok。
2函數傳回值的地方設計一下,是不是就不用再一次的if判斷呢。(直接傳回yes,no)