TeX Quotes 解法分析

Description 問題描述

TeX 是一種由 Donald Knuth 所發展出的一套文書排版軟體。這套軟體可以將原始檔的文字加上一些例如”字型”等格式,轉成一份很漂亮的檔。而一份漂亮的檔是需要用特殊的符號“ 和 ” 來把別人說的話給「引」出來,而不是用大部份鍵盤上有的 “ 。雖然鍵盤裡通常不會有這種有方向的雙引號鍵,不過上面有左單引號 ` (有人叫 backquote ),和右單引號 ‘ (有人叫 apostrophe 或 quote )。你可以在你的鍵盤上找一下,不過要小心不要將 ` 與 ( backslash 鍵)搞混了。而在 TeX 裡,使用者可以輸入兩個左單引號 “ 來構成一個左雙引號 “ ,或者是兩個右單引號 ” 來構造一個右單引號 ” ,不過呢,通常大家打字時都很習慣用普通的雙引號 “ 來引述別人的話。

如果原始檔檔內容是:

“To be or not to be,” quoth the bard, “that is the question.”

則 TeX 做出來的檔和我們想像的並不一樣:

“To be or not to be,” quoth the bard, “that is the question.”

為了要得到上面的檔,我們需要把原始檔變成這個樣子:

“To be or not to be,” quoth the bard, “that is the question.”

現在要求程式師寫一個程式,將普通的雙引號(“),轉成有方向性的雙引號,而其它文字則不變。而在把普通的雙引號換掉的時候,要特別注意,當要開始引述一句話時要用 “ ,而結束引述時要用 ” 。不用擔心會有多層巢狀引號的情形,也就是第一個引號一定是用 “ 來代替,再來用 ”,然後用 “ ,接著用 ” ,依此類推。

Input and Output 輸入及輸出格式

輸入是若干列的文字,其中有偶數個雙引號( “ ),以 end-of-file 做結束。輸出的文字必須和輸入的一模一樣,除了:

每一組雙引號的第一個 “ 必須用兩個 ` 字元(就是 “ )來代替
每一組雙引號的第二個 “ 必須用兩個 ‘ 字元(就是 ”)來代替。

Sample Input 輸入樣例

“To be or not to be,” quoth the Bard, “that

is the question”.

The programming contestant replied: “I must disagree.

To `C’ or not to `C’, that is The Question!”

Sample Output 輸出樣例

“To be or not to be,” quoth the Bard, “that

is the question”.

The programming contestant replied: “I must disagree.

To `C’ or not to `C’, that is The Question!”

Hints 特別注意

請嚴格按照標準輸出格式輸出資料,否則無法被裁判系統所接納(Accept 正確)
衷心感謝張偉娜老師和付春英老師對本題提出的意見

Answer解法參考

題目分析
這道題目是一道處理字串陣列的演算法題,是要我們通過遍歷字串陣列,找出雙引號( “ )並替換掉。但本題目有難點就是左側的雙引號和右側的雙引號是不同的。因此我們需要建立一個計數變數來分清到底是左雙引號還是右雙引號,以便正確替換。另外,ACM-ICPC有嚴格的輸出標準,請大家注意在一組測試全部資料輸出完成之後加上換行哦。

參考解法 By OuSheobin

#include<stdio.h>
#include<string.h>
#define MAXN 100
char text[MAXN];
int main(){
    int count=0;
    while(gets(text)){

        int len=strlen(text);

        for(int i=0;i<len;i++){

                if ( text[i] == ‘”‘ ) {

                    if ( ++ count % 2 ) 

                        printf(““”);

                else printf(“””);

            }

            else putchar(text[i]);

        printf(“\n”);

    }

}

    return 0;

}

歡迎大家提出自己更優化的建議哦!

“電腦語言設計猶如在公園裡漫步。我是說侏羅紀公園。”

                                    —— Larry Wall,Perl的設計者
标签: none
返回文章列表 文章二维码
本页链接的二维码
打赏二维码