2013年9月10日 星期二

[UVA]TeX Quots

CPE 22131、UVA 272程式解題。



































解題觀念:


題目意思簡單來說,就是要將句子的雙引號改成其他符號。

前雙引號要改成 「 ˋˋ」 ;後雙引號改成「 ' ' 」。
(*建議直接複製題目格是比較不會出錯。)

所以這題的重點在於,如何判斷是前雙引號還是後雙引號

將第一次出現的雙引號標示為1,第二次出現的雙引號標示為0,之後去判斷現在為1還是0之後再印出。

寫出這個判斷式,這題基本上就結束了。(見解題步驟)



解題步驟:

設定一變數count的值為1,等等要用在判斷是否為前雙引號的條件。

使用者輸入字串這不用再多說,之後設定for迴圈,用來抓取字元判斷是否為雙引號。

如果是雙引號,再進入判斷式,判斷count是否等於1(剛剛已在前面設定),是的話則將雙引號改成「ˋˋ」,

之後將再用1-count,使count的值變為0,下次再進入判斷式時,就知道這個雙引號為後雙引號,則會印出「 ' ' 」。

(*註:為甚麼要用1-count而不是用count-1??  
         因為當count=0,遇到1-0才會等於1,如果用count-1,會變成0-1=-1,而造成判斷失誤!!)

遇到不是雙引號的字母,則不改變照原樣印出。



EX:

"To be or not to be," quoth the Bard, "that is the question."

進入for迴圈抓取第一個字元,為雙引號,

再進入判斷式count是否等於1,符合,判斷為前雙引號,改為「 ˋˋ 」。

這時候的count值為0。(count=1-1=0)

之後繼續抓取字元,字母為原樣印出,抓取到第二十一個字元,為雙引號,

再進入判斷式count是否等於1,不符合,判斷為後雙引號,改為「 ' ' 」。

(後面以此類推)


BY 小K






沒有留言:

張貼留言