Categories
All 譯作

來自重慶的示威聲浪

譯者前言:在近年的普及下,很欣慰許多人已經開始意識到,六四時學運已經席捲全國各個主要城市,清場亦是全國性的命令,不單單只是北京的事,即使北京絕對是漩渦中心,但也不可因此忽視掉其他地方。過去幾年中,我陸續看見有人講述了上海、成都等地清場時的悲劇。重慶的歷史似乎鮮少有人提起過,不過老實說在時任市委書記的袒護下,重慶的結局確實還算全國不錯的。我找到了 Voices from the Protest Movement, Chongqing, Sichuan 這篇記錄重慶示威情況的文章,於六四33年之際翻譯並分享出來,以示世人勿忘歷史,原文刊於 The Australian Journal of Chinese Affairs 1990 年 7 月號,作者為澳洲國立大學的 Anita Chan 和 Jonathan Unger。


重慶是中國內陸的大城市之一,舊稱 Chungking 。這座城市在海外最廣為人知的一點是二戰期間國民黨曾將此定為戰時首都。二十世紀六十年代和七十年代,在毛澤東發動的將軍事設施向內陸省份轉移的「三線建設」運動下,重慶成為一座生產軍事設備的主要中心。今天這兒的產業更加多樣化,集中了全國30%的摩托車和汽車製造業。[1]

與北京的民主示威和西安、長沙、成都的暴力衝突相比,1989年春天在重慶的動蕩溫和許多。儘管如此,過去五年來在民眾中積累的挫敗感在此與其他地方一樣爆發為大規模抗議。在接下來的幾頁中,我們將重點關注這些挫折,並展示它們在不同社會階層中的不同之處。 我們還將看到,相互誤解和不信任如何破壞重慶不同階層抗議者之間的合作。

我們不在現場,但我們採訪了兩位來自重慶的前民運人士, 他們來自兩個截然不同的社會背景,從不同的角度講述了這場運動。 他們從未見過面,但在北京大屠殺後,他們各自躲過追捕逃到了香港,我們在 1989 年 11 月和 12 月期間分別對他們進行了採訪。他們最近都獲得了西方國家的難民身分, 離開香港到國外生活。

第一位受訪者姓王,32歲,在被迫逃離之前,他是重慶 19 所高等教育機構之一的初級教員。雖然他很年輕,沒有參加過 1966-68 年的文化大革命,但他在那個時候年齡足以令他記住了當時的派系暴力。1989 年春,當他成為大學抗議運動的顧問和領導者時,他對紅衛兵的酸楚記憶使他對學生施加了適度的影響。他對其中一些學生主張極端紅衛兵式行動(下文討論)的描述應該提醒我們注意學生運動中的暗流,這些暗流有時會危及抗議活動的和平性質。

第二位受訪者姓侯,來自一個截然不同的社會和職業背景。在飛往香港之前,他是一名私人企業家,一個「個體戶」。個體戶這個詞,字面意思是「個人私有家庭」,在漢語中具有特別複雜的內涵。該術語包括自僱修理工、出售早餐煎餅或走私進口服裝的街頭小販,以及自己擁有出租車的出租車司機,但也包括工廠主和利用其關係腐敗地賤買貴賣的投機交易者。20世紀80年代初,大多數最初的城市個體戶出現在社會主義階級制度的邊緣:那些沒有能力在國家部門獲得穩定工作的人,當國門打開時,他們開始為自己的生活而奮鬥,作為脫離失業者行列的一種手段。因此,個體戶一詞帶有兩種相反的含義,它既讓人聯想到與英語「企業家」(entrepreneur)一詞相似的主動性和足智多謀,又帶有遭人反感的含義,即指代那些在社會上被懷疑用非生產性和不總是追求高價的手段來賺錢的人。知識分子和學生往往對個體戶不屑一顧,指責他們哄抬物價,如果他們做得很成功,則會被視為暴發戶而加以憎恨。[2]

直到 1989 年 6 月,侯先生都是典型的成功個體戶。他在一個貧困的工人階級家庭長大,家中六個孩子都不能吃飽穿暖,他的人生理想一直是賺大錢。高中畢業後,他成為了重慶一家大型軍工廠的工人,但他覺得那裡的所有主動權都被成批的官僚扼殺了。當鄧小平推行的經濟改革政策帶給他「做自己的事」的機會時,他湊了 300 元借來的錢,開了一家私人餐館。每天工作 12 小時,他很快就取得了成功,並利用收入繼續從事更有利的工作。到 1989 年,29 歲的他擁有兩家塑料廠,僱傭了幾十名來自農村的散工,以人民幣計算,他是百萬富翁。

我們會從這兩個人的兩種視角,輔以《重慶日報》的文獻資料,來關注重慶的民主運動。 從這三個不同位置,我們將試圖區分學生、侯先生等私營企業家和工人在抗議運動中的不滿和作用。

遠方的轟鳴

與北京和其他城市一樣,4月15日胡耀邦去世後,重慶的大學生是第一批集體行動的群體。 不過,起初他們的活動僅限於校園圍牆內,《重慶日報》完全沒有報導。 儘管如此,讀者還是有可能從當地報紙上感受到一場全國性的危機即將來臨。據官方新聞報導,在中國其他地方,北京新華門外、西安和湖南省省會長沙剛剛爆發了對抗和騷亂。[3]對胡耀邦在北京的葬禮的報導,其坦率的態度和生動的細節讓人聯想到1957年百花運動期間的報導。[4]善於閱讀報紙文章字裡行間的人可以看出,對於一個被廢黜的領導人來說,在一份城市報紙上出現這樣不同尋常的待遇,只能說明連該報社的黨支部也處於一種反叛的情緒中。[5]

儘管如此,在最初的幾週裡,當地報紙也試圖阻止重慶的任何傳染性劇變。文章暗中指出,城市的治安可能處於崩潰的邊緣,嚴重威脅社會和政治穩定。去年,重慶被指控犯有嚴重刑事罪行的人數猛增了 45.2%;被判處十年以上有期徒刑的人數猛增了 62.8%;被處決的人數,增加了 50%。 這對人們的警告很明顯——任何抗議行動都會為進一步的犯罪和動盪打開大門。[6] 所有政府支持的「群眾組織」的領導都被召集,聽取市政當局關於如果事態失控就會回到十年「文化大革命」混亂局面的世界末日般的設想。[7]

個體戶登上舞臺

五月初,學生們確實湧上了重慶街頭,但具有諷刺意味的是,這是在兩個小個體戶的鼓動下發生的,這兩個人不太可能在學生面前發揮催化作用。據參與了這些活動的侯先生說,這兩個個體戶其中一個是21歲的理髮師,另一個是為一個私營企業家當跑腿女郎的青年。為了增加收入,這兩個年輕的個體戶經常帶著塞滿四川香煙的行李到北京去,因為首都的香煙比中國內地要貴很多,這種小買賣帶他們在四月來到了北京。他們在那裡看到的學生示威活動對他們產生了很大的影響,當他們回到重慶時,看到重慶學生溫順地順從當局,「只是在校園裡轉悠」,他們感到非常失望。兩位年輕的個體戶是侯先生的熟人,他們去找侯先生商量該怎麼做。當天晚上,他們決定去重慶大學發表公開演講,以喚醒學生。但他們意識到,如果他們以個體戶的身分去,學生們會反駁和嘲笑他們。因此,他們萌生了冒充北京師範大學學生的想法,以使他們具有來自中國中心的使者的可信度。他們聯繫了重慶大學的學生,包括侯先生在內的六位個體戶於5月4日前往該大學,幫助煽動學生。

2000 多名渴望了解最新進展的學生齊聚一堂,聆聽這兩名「北京學生」動情地講述首都的學生運動以及官員的暴利和腐敗,當地電視台對這次集會進行了錄像。在聽眾中,王先生回憶說:「許多人相信他們,包括我自己。他們講得很好,很有說服力。」他們成功地喚起了學生上街遊行的熱情。據王先生說,在學生遊行隊伍興奮地回到校園後,這兩位發言者被選為五人領導委員會的成員。當天晚上,他們睡在學生宿舍,並於5月5日凌晨被公安人員逮捕。[8]兩名年輕的個體戶,熊長平(音)和段泉(音),兩天後被判處有期徒刑 15 年。

當地媒體立即對本案進行了大力宣傳。 王先生回憶說,這件事讓學生們感到非常尷尬。 媒體嘲笑他們:受過良好教育的大學生竟任由兩個冒牌貨操縱自己。 王先生觀察到,當學生們意識到這兩個「學生」是最糟糕的「個體戶」時,「他們覺得被騙了,不想再站起來示威了」。 另一方面,侯先生對他的兩個朋友被捕和他們的刑期公示深受影響。 在電視上他看到了他們的「反革命」演說和他們在拘留所的所謂「懺悔」的電影片段,他們的臉被打得青一塊紫一塊。不過,侯先生可以肯定,他只能在他們的臉上看到憤怒的反抗。 隨後,其中一位去監獄探望他們的母親告訴他,儘管遭受酷刑,他們實際上還是拒絕認罪。

重慶抗議運動的第一階段只是凸顯了學生和知識分子與這些自僱人士和小資本家之間的鴻溝。中國的學生和知識分子往往覺得,像過去幾個世紀的文人一樣,他們是任何道德正義事業的正當領袖。從王先生回憶的語氣中可以看出,讓卑微的個體戶偷走這個衣缽,對他們的自尊心造成了雙重打擊。

就個體戶,即侯先生和他的朋友們而言,對學生懷有複雜的自卑感和優越感。一方面,他們知道自己在社會中的地位。他們緊緊抓住學生運動,響應其口號,部分原因是他們意識到自己的地位太低,無法得到尊重。他們冒著風險擔任學生事業的領導,部分原因是他們覺得有必要證明,儘管他們的地位和聲譽很低,他們是正直地關心國家事務的。正如侯先生對我們說的:「當然,作為個體戶,我們覺得我們也應該加入這種正義的運動。」

如果按照侯先生的說法,一些個體戶同時也覺得他們比學生和其他社會群體更優越。最重要的是他們有錢。他們的收入可能是普通工薪階層的兩倍、三倍或許多倍,而且他們為自己通過自己的聰明才智賺到的錢感到自豪。在運動期間,他們慷慨解囊。侯先生主動向他的個體戶朋友和熟人募集捐款。此外,在北京發生六四屠殺的第二天,他就捐錢給學生買了一台複印機,以加快新聞在重慶的傳播速度。在北京,作為另一個例子,高調的「飛虎 」摩托車隊作為新聞信使在城市中飛馳,許多人帶著無線頁面呼叫器,在抗議活動中發揮了關鍵作用。個體戶是現金和物質支持的重要來源——食品、通信設備、車輛等。他們的熱情和慷慨讓很多人感到驚訝,並為他們塑造了一個新的形象。正如一位曾是北京 「飛虎」車隊成員的個體戶後來在一份香港雜誌上寫的那樣:

每當個體戶經過其中一個學生的捐款點時,他們都會停下來捐錢——從十塊、幾十塊到一千甚至幾萬塊錢,以表明我們個體戶發自內心的真誠。 所有的學生,來自全國各地的學生,絕食的學生,都淚流滿面地向我們「飛虎」車隊打招呼:「北京的個體戶萬歲!」自從個體戶這個詞出現以來,我們還是第一次聽到這個難以想像的口號,「個體戶萬歲!」[9]

他們對學生的支持不一定是故意算計的,但很明顯,像侯這樣的個體戶希望用他們新賺來的錢來購買社會尊重、聲望和地位。 他們希望受到「人民」的歡迎。

在重慶,由於運動初期兩名年輕的個體戶被抓捕和曝光,他們未能獲得與北京的個體戶同等程度的認可和接受。 重慶當局利用這一事件,採取了分而治之的策略。 即便如此,侯先生和他的同事們仍在繼續活動。

作為一個社會階層,個體戶有他們自己的不滿,但這些不滿很容易被包含在廣泛的學生運動口號中,如 「民主」、「反對腐敗」、「打倒官僚主義」、「反對暴政」。在激烈的情緒中,共同的敵人提供了團結的力量,即使一些口號的內容,如果仔細看的話,可能會導致學生和個體戶站在對立面。畢竟,當學生和其他人抱怨腐敗時,他們在一定程度上想到了個體戶。

然而,民眾在這方面對個體戶的反感並不完全正確。侯先生最大的抱怨是經營企業的不安全感,原因是沉重的稅收和各種各樣的「捐款」、「特別稅」以及對各種政府機構的官員的賄賂。對於一個個體戶來說,區分哪些是進入公共財政的,哪些是進入私人腰包的,哪些是進入中央政府的,哪些是進入地方政府的,此事並不容易。侯先生憤憤不平地列舉了除常規營業稅之外的非正常徵稅:

殘疾人基金會(鄧小平的長子鄧樸方是該基金會的主席)再次來要求「捐款」。 你必須「捐款」,根本無法拒絕。「捐款」的金額取決於您的業務規模。 如果你不給,他們會讓你穿「小鞋」(給你帶來各種不便)。 因為我的生意很大,我每次都要「捐」上千元,一年好幾次。 除了鄧樸方的機關,還有很多人圍了過來。 甚至有人告訴我,我最好為亞運村的建設捐款。 我們感到我們的生活受到來自各方面的壓力。

除了這種徵收外,全國每年由個體戶支付的常規營業稅已達到約 200 億元。[10]該稅款預先確定為企業規模的百分比,而不是按利潤的百分比。即使該企業當年是虧損的,也必須繳納。因此,侯先生說,一個個體戶必然要學會如何逃避一些稅收負擔,以免他被迫停業。他發現自己在這種情況下不得不採取腐敗行為。

要成為一個成功的個體戶,你必須建立起你的關係。我們必須結識公安機關的人,這對我們的業務是必要的。公安局的人工資很低,所以他們喜歡和有錢的個體戶交朋友。我們在某種程度上相互幫助。我們宴請他們,給他們買煙,招待他們。在某種程度上,我們是朋友——酒肉朋友。

與公安人員和腐敗官員的交往,為個體戶帶來了通過逃稅和不道德的商業行為賺錢的形象。從某種程度上說,他們正是想通過參與民主運動來擺脫這種形象。他們希望被看作是誠實的,正直的。我們可以從與侯先生的長時間談話中得知,他和他的同事們真誠地希望他們可以在一個以功績為基礎的社會中運作,而不是一個以腐敗的特殊關係為基礎的社會。他們自己畢竟不是官員的親屬,他們是腐敗的給予者而不是接受者。他們不得不與貪婪的官員分享自己的收入,這是非常不公平的,令人沮喪的。在1989年的抗議運動中,一部分新的有錢階層對舊的權力精英進行了反叛。

學生們走上街頭

正如在北京和其他城市一樣,重慶的大學生站在了民主運動的中心。從5月中旬開始,他們是組織最嚴密、最持久的,儘管不一定是最激進的。

5月4日之後,重慶的學生活動由於發現他們被這兩個個體戶誤導而幾乎崩潰。北京學生絕食的消息傳到各省後,人們的情緒才再次高漲起來。 5月17日,重慶爆發了規模最大的學生遊行,有一萬名學生參加,媒體在頭版進行了 「客觀 」的報導,包括一張突出顯示一些挑釁性橫幅口號的照片。[11]隨著國家首都的民主抗議活動愈演愈烈,重慶當地媒體的民主派開始表示同情。第二天,即5月18日,媒體對事件的報導更加大膽,更加詳細。 18日,2000多名學生在市政府前靜坐,其中82人開始絕食。與北京的學生一樣,他們要求與當地官員進行對話。據媒體報導,這些學生得到了 「該市居民的熱情支持」。到現在,一些當地的新聞人員甚至自己也加入了抗議活動。

市政府方面則不遺餘力地避免發生衝突。據當地媒體報導,交通警察幫助緩解了交通擁堵;治安警察與一家餐館達成安排,為遊行隊伍設立了飲料供應點;警察幫助暈倒的學生上了救護車;在漫長的熱天結束時,市交通局調動了167輛公共車輛和500名工作人員,將一萬多名學生送回各個校園。 [12]繼李鵬和趙紫陽在18日清晨看望絕食的學生後,重慶市委書記肖秧也來了。他冒著大雨,於19日凌晨2點看望了絕食的重慶學生,敦促他們注意身體,結束絕食,並承諾將打開對話的渠道。

這是北京宣布戒嚴前幾天重慶發生的事情的官方版本。王和侯所敘述的相同事件,在某些地方與官方的說法不同。官方版本試圖將這場運動描述為主要是 「學生」運動,它是有秩序的,沒有小規模的衝突。實際上,學生運動現在已經成為一場群眾運動,儘管遊行和集會普遍具有非暴力性質,但還是發生了幾次與警察的對抗。 18日,聚集在市政府外的人群砸碎了市政府的招牌,這一反抗行為具有充分的象徵意義,王和侯分別以激動的語氣向我們講述了這一事件。第二天,就像精神上的大壩被打破了一樣,一群學生和其他人一起衝進了市政府。但由於擔心當局會以此為藉口放開軍隊,而當時顯而易見軍隊正部署在城市的關鍵地點,所以人群沒有接管大樓。相反,他們開始佔領大門外的走廊。同一天晚上,警察抓住了十幾個高舉新工人團體旗幟的工人,把他們拖進市政府,徹底毒打了一頓,並在第二天將他們釋放。

按照承諾,市委確實在5月20日派了一個市級官員代表團與學生和其他抗議者進行了對話。但根據王先生的說法,抗議者本身過於混亂,無法進行適當的對話。他們沒有制定一個共同的綱領,也沒有一個具體的訴求清單。每個參與的學校和工作單位都只是派出了七八個代表,這些代表都是在草率的情況下,幾乎隨機挑選的。在指定的日子裡,包括王先生在內的兩百多名代表湧入市政府,而包括侯先生在內的一萬多人則在外面等候。

對話中提出的問題和觀點五花八門,完全不協調。學生們提出的要求包括:市政府責令電報局取消重慶示威者向北京學生發出聲援信息的禁令;重慶市政府應該發出自己的聲援電報;市委書記應該像趙紫陽那樣,而不是像李鵬那樣。王先生代表大學提出的一個問題可以看出學生訴求有多分散。前年,他所在的大學的學生為一個 「綠色」問題舉行了抗議:隔壁的一家工廠向校園噴灑有毒氣體。在爭端過程中,重慶市委書記肖秧親自來到大學,安撫學生。在他的講話中,他發表了一個聲明,大意是在重慶不存在官方的暴利行為。當時沒有人敢於挑戰他,現在,王先生想知道肖秧是否會繼續堅持他一年前的聲明。他還花了很多時間來要求澄清一起與建豪華酒店有關的著名涉嫌貪污案件。

廉潔從政是王先生和學生們的正義訴求,而職工代表的訴求則涉及工作保障、薪酬和福利待遇。 幾個小時漫無邊際的「對話」結束後,代表們再次從市政府湧了出來。 市委沒有給出具體的承諾, 一無所獲,沒有人滿意,抗議活動將繼續進行。

運動的曲折、學生的訴求,以及地方當局處理抗議者的策略,都與北京的運動一脈相承。抗議者和地方當局都向北京尋求方向。北京學生絕食,重慶學生也絕食。趙紫陽看望學生時,重慶市委書記也來了。北京學生取消了絕食,重慶學生也取消了。重慶的口號和小調基本上是從北京複製過來的。重慶學生甚至工人抗議的理由都是「支持北京學生」,為北京示威者籌集了金錢和物資。很多重慶的學生都渴望去北京擴大天安門廣場的隊伍。 1000 人自告奮勇,最終 170 人在火車站被興奮的人群送行。北京是麥加,天安門是卡巴清真寺。從隱喻的意義上說,地方運動並不是為自己而存在的。它為北京的運動而生。

然而,在這個「支持北京學生」的總口號下,地方性問題和特定社會階層的不滿情緒確實被提出來。王先生指出了幾起令大學生們激動抱怨的問題。在通過殘酷的競爭成功進入大學後,學生們發現自己不幸被束縛在一個令人難以忍受的僵化系統中,他們被當作機器中的無名齒輪,興趣和抱負都被完全忽視。此外,王先生說,學生們發現自己面臨巨大的經濟壓力。即使是那些領取政府津貼的人,在高通脹的情況下也難以維持生計。在1989年春天,僅食物一項的價格就高達70元人民幣,大約是半個月的平均工資,遠遠超過了學生的津貼額度。王先生報告說,他自己的學生發現他們是父母的一個主要經濟負擔。

學生面臨的另一個主要問題是畢業後的就業問題。事實證明,讓畢業生自己在勞動力市場找工作的新政策並不受大多數學生歡迎。許多人發現他們的處境比以前更加不利。至少在以前的制度下,畢業生自動從大學直接分配到職位,即使不是他們想要的工作,他們也能得到一份工作。現在,隨著近期大學畢業生就業市場的趨緊,一些人在城市就業中遇到了困難,尤其是女畢業生和來自農村的學生。從新制度中受益最多的畢業生是那些父母有權有勢或有良好關係的畢業生。一個旨在獎勵學術成就和技能的新制度,旨在取代一個容易受到特殊官僚關係影響的制度,但它本身很快就陷入了特殊主義的泥潭。學生們開始抱怨新系統比舊系統更不公平。 (在鎮壓抗議運動大約半年後,中國政府開始轉向以前的工作分配制度。)

然而,所有這些與學生生活直接相關的挫折感並沒有在運動中浮現。學生們把它們昇華為更崇高的目標,即反對腐敗和支持北京學生運動。通過這樣做,他們為重慶的其他團體加入他們提供了基礎。

學生的策略僅限於對黨的領導進行非暴力抗議,這為他們的運動提供了一種普遍的道德優越感。但據王先生說,堅持這一策略需要他自己和學生的其他導師付出一些努力。如前所述,一些學生傾向於重演紅衛兵運動。他們想以一種積極破壞性的方式發洩他們的挫敗感和憤怒。因此,校園裡出現了海報,呼籲將校長「拖出」並遊行以供公眾嘲笑。有人建議佔領廣播電台。在另一所重慶的大學,一群來自鄧小平家鄉的學生組織了一個「廣安聯誼會」,登上了前往廣安的火車。他們想挖掘鄧的祖墳,象徵性地將鄧小平逐出家鄉。但當他們到達鄧的祖村時,那裡已經有兩支軍隊重兵把守。學生們被捕了,據王先生所知,截至 1989 年秋天還沒有被釋放。

這些事件正中當局下懷,如前所述,他們在四月下旬已經採取了恐嚇策略,發出過可怕的警告,說抗議活動預示著文化大革命的混亂和暴力的回歸。[13]這樣的警告很容易讓所有曾經是紅衛兵暴力目標的官員和精英知識分子感到不寒而栗。在過去的二十年裡,他們對文化大革命的概念被一分為二,變成了狂熱分子羞辱和毆打像他們一樣的人的景象。意識到不適當的激進行為會使這一代老人團結起來,恐懼地反對示威者,王先生和其他教師試圖說服學生遵守更溫和的策略。王先生親自撕掉了那些鼓吹過度激進行動的學生海報,認為 「我們不應該偏離我們支持北京學生運動的主要目標」。

當局對幽靈般的紅衛兵的擔心也許並不是那麼不切實際。在過去的幾年裡,相當多的青少年和年輕人對毛澤東和毛澤東思想重新產生了興趣。王先生回憶說,1988年,重慶的舞廳開始播放毛主義的聖歌《東方紅》。大約在同一時間,許多學生開始對閱讀毛澤東的著作表現出興趣。由於鄧小平和黨已經下令否定文化大革命,學生們故意去尋找文化大革命沒有那麼糟糕的證據。他們緊緊抓住毛澤東在文化大革命中唆使被壓迫者起來與特權階層和權貴鬥爭的這一點,認為自己屬於腐敗的官僚體系中的被壓迫者,因此,儘管紅衛兵運動有過激行為,但他們認為這是一場正義的運動。在過去的幾年裡,收集文革時期毛澤東徽章的熱潮席捲了中國,這種徽章是紅衛兵曾經虔誠地收集的類型。王先生的一個朋友,一個曾與方勵之(一個最不可能被毛崇拜俘虜的人)一起學習的研究生,曾懇求王先生在重慶為他尋找這種毛澤東徽章。 1989年,許多這樣的徽章再次出現在抗議者的T恤衫和長褲上。[14]

親毛的熱潮中還有一個明顯的戰略因素。只要國家當局沒有否定毛澤東,毛澤東主義的旗幟就可以作為一面紅旗安全地揮舞,以攻擊鄧小平在1980年代的粉紅色旗幟。這顯然是約瑟夫·埃舍里克(Joseph Esherick)的論文中引用的當時非常流行的口號的效果,大意是:「毛澤東的兒子去了(死在)戰場上…… 鄧小平的兒子向所有人要錢」。毛澤東的語錄,如「凡是鎮壓學生運動的人都沒有好下場」,或毛澤東的評論,「鄧小平個子不高,但他的野心不小」,都可以揮灑自如地發揮作用。

工人的角色

生產工人大多以個人身分參加運動,很少作為工人隊伍走上街頭,高舉著標明自己工作單位的旗幟。那麼,他們在運動中是否發揮了任何重要作用?對這個問題有幾個答案。官方媒體故意淡化了他們的參與程度。當需要提及工人或其他非學術階層的重慶居民時,他們總是被描述為挑釁者,不知何故混入和平示威的學生中。除了兩名個體戶之外,在4月、5月和6月,《重慶日報》還報導了一些其他的逮捕事件。 5月4日,3人(1名農民,2名失業青年);5月20日,9人(據稱都曾使用過暴力;9人中有2人是前科犯);6月5日,5人因掀翻車輛被捕(據稱都是郊區縣的農民,其中幾人有犯罪記錄);6月10日,2名女工因試圖煽動抗議,要求釋放6月5日被捕的5人(據稱其中一人因從自己的工廠偷走布料已經受到紀律監督)。[15]在同一時期,據說沒有一個學生、知識分子或白領被逮捕,這一事實向重慶人民傳達了一個重要信息:當局可以容忍學生運動,但不能容忍群眾運動,任何生活在社會邊緣的人試圖利用示威活動煽動動亂的行為都會被無情地粉碎。當局似乎還試圖將任何公開表達廣大人民群眾的不滿視為非法行為。

就抗議者自己而言,學生和知識分子對 「低層 」社會階層加入他們的抗議運動感到很矛盾。一方面,他們對工人沒有完全支持他們感到遺憾;另一方面,特別是在運動的早期階段,他們試圖讓工人和其他人保持距離,無論是隱喻還是字面意思。他們最關心的是樹立不受物質需求影響的無私理想主義形象,並通過開展嚴格的和平和溫和的運動來贏得當局的信任,他們在遊行和集會中把自己與圍觀者甚至是支持者隔離開來。 [16]但隨著抗議活動的增加,他們開始感受到民眾支持的熱潮,而且越來越明顯的是,成千上萬元的財政支持對他們的事業至關重要,他們開始考慮擴大基礎的好處。學生們開始在工廠裡遊說,以尋求支持。

學生們最初的態度正中當局下懷,當局的噩夢是社會各階層的團結式戰線。當學生們試圖阻止其他人混入他們的遊行隊伍時,警察協助他們形成了一道人肉封鎖線。同時,工廠和其他工作單位也施加了巨大的壓力,警告工人和職員不要上街。胡蘿蔔和大棒同樣被揮舞著。工廠對在這幾週內堅持工作的人發放了大量獎金,而對那些離開工作場所上街或更糟糕的罷工的人,則威脅要進行懲罰。當學生們最終接近工廠與工人接觸時,警察和軍隊駐紮在工廠外,不讓他們進入。

工人們對這一切的反應是複雜的,他們很想加入,但又不敢,至少不敢以有組織的或公開的方式加入。作為工人,他們有自己的不滿,但學生們避免與這些不滿糾纏在一起。來自父母都是工業工人家庭的侯先生,討論了工人的情況:

工人們看得出來,參與運動受到了學生自己的嚴格限制,似乎工人們沒有資格參與。而從電視上的新聞來看,指責工人散播謠言等,似乎工人是當局的專門目標。他們可以看到,對工人階級的判罰特別重。

此外,在北京,學生們提出的問題與工人沒有關係。例如,吾爾開希在他的演講中只談到了學生(吾爾開希和其他學生代表與李鵬的對話在包括重慶在內的全國電視上播出)。如果他也提到工人,以真誠的方式向工人呼籲,工人可能真的會大出風頭。 [17]

侯先生觀察到,儘管如此,有三種特殊背景的工人階級確實公開參加了大量的抗議活動。他們是:來自重慶的失業青少年,他們的隊伍在過去一兩年裡隨著中國經濟的降溫而膨脹;再者是所謂的 「盲目的流動人口」,他們主要由前農民組成,在80年代的繁榮時期受僱於城市建設工作,但在1988年中期開始的國家經濟緊縮政策下,他們被大量解僱;再加上那些因人員過多而被從工廠遣返的產業工人。這些工人主要是在重慶建立的大型軍工廠的僱員。現在,在鄧小平的領導下,對軍隊的預算削減正在迫使人們削減生產。但工廠並沒有直接解僱不需要的工人,而是向他們提供大約70%的「基本工資」,並要求他們留在家裡。 [18]讓這些工人特別不安的是,「基本工資」不是正常工資的主要部分,他們被排除在外的獎金現在佔工人實得工資的一半或更多。更糟糕的是,「基本工資」並沒有隨著通貨膨脹而增長。他們的生活陷入了困境,生活費少得可憐,而且他們的情況每個月都在惡化。由於沒有什麼可失去的,他們憤怒地擠在示威的邊緣。

有全職工作的工人則需要謹慎得多。正如侯先生所說,「他們太擔心了,不敢加入。畢竟,工人要養家糊口,如果他們因為參加運動而被解僱,就沒有辦法生活了。」因此,那些想表示支持的人傾向於在下班後單獨匿名地出來。由於無法加入遊行隊伍,他們聚集在市政府前的廣場上。

儘管工人階級有這樣的顧慮,但在廣場上確實出現了兩個打著旗號的市民工人團體:重慶市民聲援團和重慶山城工人聲援團。它們幾乎是自發產生的,吸收了任何有興趣和有膽量的人加入。但在重慶,沒有與北京的工人自治聯合會相對應的、圍繞工人問題建立的組織。 [19]儘管這樣,6月4日之後,當局公開指控幾個工人建立了這樣一個工人聯合會,並將他們逮捕,顯然是為了恐嚇其他工人。

對北京大屠殺的反應

在6月4日之前的一週,重慶的運動已經沒有動力了。當局利用鐵路貨物運輸和城市交通的中斷的機會,對日益萎靡不振的示威活動的「動盪 」展開了宣傳攻勢。但隨著6月4日的臨近,氣氛再次變得緊張起來。那天晚上,侯先生和他的朋友們在一台收音機前徘徊,第二天,他通過捐錢購買一台複印機,幫助向整個城市傳播這一消息。

這個城市再次震驚了。學生們開始了「空校運動」以表達他們的憤怒,彼此情緒激動地宣誓要到九月之後才返校。一些學生給學校領導寫信,宣稱他們要去向四川人民宣傳北京大屠殺的真實情況。還有許多學生離開重慶回家。留在重慶的學生與不是學生的人一起設置路障,掀翻車輛,封鎖火車。在大約兩天的時間裡,這個城市陷入了癱瘓。[20]然而,到了6月5日晚,當局市政府以當地經濟遭受巨大損失為由,說服那些封鎖鐵路的人結束他們的抗議活動,發出呼籲的語氣也相對溫和。抗議者的違法行為更多的是破壞了城市生活的正常功能,而不是暗示反革命的意圖。新聞界、王先生和侯先生都沒有報導任何暴力事件。事實上,王先生稱讚肖秧巧妙地處理了局勢。有傳言說,在對重慶高層官員的一次講話中,他將局勢的嚴重性降低了,將其描述為「無目的的亂動」,而不是北京黨內強硬派使用的標準用語「政治動亂」。

到6月6日,交通流量幾乎恢復了正常。[21] 為防患於未然,該市被置於武裝巡邏之下。[22] 為了響應當局的要求,郊區各縣各動員了200-300人的民兵隊伍。[23]

然而,市政府並沒有利用其掌握的力量,隱性警告被認為是足夠的。在北京大屠殺之後的兩週時間裡,王先生只聽說有幾個學生被逮捕,其中包括一個從學生運動的庫房中挪用資金的人。各大學的行政部門發出信件,命令學生回來參加年終考試,否則他們將被視為自願放棄學位。儘管他們發過誓,但據說到月底,95%的學生都回來參加了考試。[24] 由於預期學生會因前幾個月的干擾而獲得較差的成績,王先生的大學管理人員甚至分發了一份通知,敦促教師在評分時要寬宏大量,王先生欣然接受。

王先生對自己的情況感到足夠的安全,可以留在校園裡。不過,他被要求寫下他在運動期間的活動交代。他盡力不透露尚未公開的組織細節,但是那些負責人對他的報告並不滿意,王先生開始感到越來越不安。到七月底,沒有一個大學教師被逮捕,但有幾十個工人被逮捕。在電視上看到他們被毆打和羞辱的情景,使王先生感到非常不安。暑假到來時,他急忙離開重慶回老家待了一個月,當他在八月底回到校園時,政治氣氛已經惡化。肖秧在處理抗議者時相對寬鬆,用王先生的話說,是「趙紫陽式的」,他被重慶市委副書記,一個著名的強硬派取代了「調查小組」的組長位置。中央委員會剛剛發布了一份文件,指定了在徹底「剷除反革命的根源」的運動中應該針對的十九種人。[25] 王先生意識到,如果需要立靶子,他很可能作為組織者和策劃者被列入名單。當他的一個在運動中不太活躍的朋友消失在警方拘留所時,王先生決定是時候躲起來了。他成功地逃到了香港,一個月後他的妻子寫信說她要和他離婚以保護自己。

正如學生們沒能承受住壓力而改變了自己「空校」的想法一樣,侯先生也注意到,一些50歲以上的工人的態度發生了變化。他們更輕信政府的宣傳,並願意相信北京軍隊只是為了應對暴力挑釁才使用暴力的官方說法。也有一些人從來沒有贊成過遊行和集會,因為他們的生活受到了動亂的不利影響。而在六月之後,侯先生注意到,他們趁機開始公開詆毀抗議者。但侯先生說,也有一些年輕工人在感情上變得更加激進。他們私下發誓,如果他們下次再上街,他們會有備而來,必要時武裝起來。暴力不再超出想像。

七月底,公安局要求侯先生過來接受審訊。公安人員對他出奇地客氣,問他做了什麼,捐了多少錢,等等。他被允許回家,但一個為公安局工作的「朋友」很快私下告訴他,他最好躲起來。侯先生溜出了重慶,前往廣東,然後去了香港。

即使是現在,侯先生仍然對他為什麼會成為鎮壓運動的目標感到困惑,他認為自己並不特別活躍。可以肯定的是,他和兩個年輕的個體戶一起出現過,他幫助籌集資金,也為運動捐了一些自己的錢。但他不是一個組織者,也沒有參與任何暴力活動。侯先生懷疑,由於他是抗議活動的參與者,他可能被挑出來,成為八月份即將發起的針對中國個體戶的運動的目標,該運動表面上是為了根除腐敗和逃稅。黨顯然在努力改變大眾的看法,即官員暴利的罪魁禍首是腐敗,通過宣傳個體戶的違法行為並重新集中對他們的怨恨。黨的領導人顯然在盤算,個體戶已經是知識分子和工人嫉妒的對象,針對他們的運動將很少引起人們的同情。參加示威的各個團體將相互對立。[26]

因此,全國範圍內也開始努力利用工人階級對知識分子的對立情緒。 1989 年夏秋兩季的報紙宣傳試圖強化藍領階層對毛澤東逝世後工人階級社會地位下降的不滿情緒。 文章還指責「資產階級自由主義」知識分子公然蔑視工人階級。

在這些宣傳工作中,黨的領導層一直急於抵禦1989年春天險些實現的噩夢:知識分子、學生和工人的大聯合,就像團結工會那樣。對於幾十年來一直將其合法性建立在聲稱代表 「無產階級」利益上的黨的領導層來說,這個噩夢中最可怕的部分就是工人的大規模參與。這在很大程度上解釋了當局六月後將工人階級的輿論轉向反對其他團體的努力,也同樣解釋了對那些敢於公開加入這樣一個聯盟的工人所做的嚴厲懲處的公開例子。

在與我們的討論中,王先生提到這些工人是六四後鎮壓的受害者。侯先生則提到工人和個體戶都是主要受害者。他們倆都沒有想到,還有一個群體在鎮壓中承擔了不成比例的份額,包括全國範圍內的大部分處決。這個群體包括失業者和「盲目的流動人口」——即那些湧入城市尋找工作的前農民。正如政府所希望的那樣,王和侯仍然急於把自己和自己的社會階層與社會地位遠遠低於他們的人分開。在我們的採訪中,當列舉在運動中被捕的人時,侯和王都沒有想到要包括他們,儘管媒體廣泛報導了這種逮捕。

鑑於這種感覺,當局的分而治之策略可能比前抗議者和西方學者願意承認的更有成功的理由。這對任何未來的自下而上的抗議運動都不是好兆頭。可以肯定的是,出現這種新的爆發的條件仍然是成熟的。白領階層和年輕工人的失望情緒太過普遍,對北京大屠殺的反感太深,以至於黨的領導層沒有多少機會重建群眾基礎。但不同的社會經濟階層在相互認識、怨恨和猜疑方面仍然存在矛盾。下一次群眾運動很可能再次因難以跨越這些鴻溝而受到阻礙。

堪培拉

1990年3月


[1] 統計來自《北京周報》第33卷第8號(1990年2月19日),重慶被稱為「經濟綜合結構調整試點城市」(第18-19頁)。

[2] 關於公眾對個體戶的看法,請參見 Thomas B. Gold,’Guerrilla Interviewing Within the getihu’,在 Perry Link、Richard Madsen 和 Paul Pickowicz(編)的Unofficial China: Popular Culture and Thought in the People’s Republic (Westview Press, Boulder, Colorado, 1989),第 175-92 頁;還有 Anita Chan,’The Challenge to the Social Fabric’,Pacific Review,第 2 卷第 2 期(1989 年 3 月),尤其是第 122-26 頁。

[3]《重慶日報》,1989 年 4 月 21 日、23 日和 24 日。Joseph Esherick 和Andrea Worden 的章節中討論了西安和長沙事件。

[4]《重慶日報》,1989 年 4 月 23 日,第 3 頁。

[5] 據在成都一家報社工作的受訪者稱,這種報導通常被認為具有顛覆性,只有在報社最高領導層同意的情況下才會出現。相比之下,她所工作的報紙,她聲稱是由一個自私自利的官僚管理的,就幾乎沒有報導胡耀邦的死訊。

[6]《重慶日報》,1989 年 4 月 25 日。

[7]《重慶日報》,1989 年 4 月 4 日。

[8] 《重慶日報》1989 年 5 月 7 日報導,5月4 日,兩名個體戶偽裝成北京大學生,「混入」學生遊行和罷工,發表顛覆性言論,高喊口號,聲稱他們被派來負責組織遊行和罷工。有趣的是,儘管報導​​存在負面偏見,但報紙報導的事實基本正確。

[9] 《九十年代》月刊,1989 年 12 月,第 15-16 頁。

[10]《中國日報》,1988 年 5 月 22 日。

[11] 《重慶日報》,1989 年 5 月 19 日。

[12] 《重慶日報》,1989 年 5 月 18 日。

[13] 例如,《重慶日報》1989 年 4 月 28 日的一篇社論。

[14] 另見香港《英文虎報》,1989 年 10 月 20 日;《南華早報》,1989 年 11 月 7 日。還有《九十年代》,1990 年 3 月,第 78-79 頁。

[15] 《重慶日報》,5 月 6 日至 23 日,6 月 7 日至 15 日。

[16]  這一點在本書中關於其他省份的一些報告中也有所提及。

[17] 類似的感受在兩名北京工人寫給學生的兩封公開信中也很明顯。見《中國民運原資料精選》第一輯(十月評論社,香港,1989),第67頁。

[18] 在另一組採訪中,兩名來自北京的工人階級背景的民主活動人士向我們表示,這種半就業形式在北京的國家工作人員中也相當普遍。

[19] 廣州的一位民主活動人士告訴我們,儘管他所在的城市確實有一個「廣州市工人自治聯合會」,但其主要組織者並不是真正的工人。他們擁有大學學位,並繼續在工廠和其他機構工作。因為他們不能加入學生或知識分子的團體,他們組成了一個「工人團體」。

[20] 官方統計數據顯示受損車輛的總數為 72 輛。《重慶日報》,1989 年 6 月 7 日。

[21] 《重慶日報》,1989 年6月7日。

[22] 《重慶日報》,1989 年6月11日。

[23] 《重慶日報》,1989 年6月14日。

[24] 《重慶日報》,1989 年6月27日。

[25] 19 種被定為目標的人,見《九十年代》,1989年9月,第6-7頁。

[26] 關於全國反對個體戶的運動,見《中國之春》,1989 年 9 月,第 54-55 頁;《九十年代》,1989年12月,15-16頁; 《科技經濟導報》,1989 年 9 月 20 日,第 1 頁;《北京周報》,1990 年 1 月 22 日,第 4 頁。

Categories
All 算法

做題筆記:Remove Duplicates from Sorted Array (Java)

今後 Easy 題若沒碰到非常精彩的就不每題都更了。

題目描述:

給定一個按非遞減順序排序的整數數組 nums,就地刪除重複項,使每個單獨的元素只出現一次。元素的相對順序應保持不變。

由於在某些語言中無法更改數組的長度,因此您必須將結果放在數組 nums 的前半部分。更正式地說,如果刪除重複項後有 k 個元素,則 nums 的前 k 個元素應持有最終結果。除了前 k 個元素之外,留下什麼都不重要。

將最終結果放入 nums 的前 k 個插槽後返回 k值。

Example 1:

Input: nums = [1,1,2]
Output: 2, nums = [1,2,_]
Explanation: Your function should return k = 2, with the first two elements of nums being 1 and 2 respectively.
It does not matter what you leave beyond the returned k (hence they are underscores).

Example 2:

Input: nums = [0,0,1,1,1,2,2,3,3,4]
Output: 5, nums = [0,1,2,3,4,_,_,_,_,_]
Explanation: Your function should return k = 5, with the first five elements of nums being 0, 1, 2, 3, and 4 respectively.
It does not matter what you leave beyond the returned k (hence they are underscores).

Stack 解法:

自己還是只能想出來蠢方法,應該刷題量還遠遠不夠吧:

class Solution {
    public int removeDuplicates(int[] nums) {
		Stack<Integer> Stack = new Stack<Integer>();
		int k = 0;
		for (int i = 0; i < nums.length; i++) {
			if (Stack.search(nums[i])==-1) {
				Stack.push(nums[i]);
				nums[k] = nums[i];
				k++;
			} 
		}
		return k;
	}
}

7 ms

利用順序的取巧方法:

class Solution {
    public int removeDuplicates(int[] nums) {
        int i = 0;
        for(int n: nums){
            if(i == 0 || n > nums[i - 1]){
                nums[i] = n;
                i++;
            }
        }
        return i;
    }
}

1 ms

Categories
All 算法

做題筆記:Merge Two Sorted Lists (Java)

題目描述:

給定兩個排好序的 linked list list1 和 list2 的 head。

將前兩個 linked list 的節點拼接在一起合併到一個完成排序的 linked list 中。

返回合併之後的鏈結串列的 head。

Example 1:

Input: list1 = [1,2,4], list2 = [1,3,4]
Output: [1,1,2,3,4,4]

Example 2:

Input: list1 = [], list2 = []
Output: []

Example 3:

Input: list1 = [], list2 = [0]
Output: [0]

解法:

class Solution {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        ListNode result = new ListNode();
        ListNode head = result;
        while (true){
            if (list1==null){
                result.next=list2;
                break;
            }
            if (list2==null){
                result.next=list1;
                break;
            }
            if (list1.val<=list2.val){
                result.next=list1;
                list1=list1.next;
            }
            else {
                result.next=list2;
                list2=list2.next;
            }
            result=result.next;
        }
        return head.next;
    }
}

1 ms

Categories
算法 All

做題筆記:Valid Parentheses (Java)

題目描述:

給定一個僅包含字符 '(', ')', '{', '}', '[' 和 ']' 的字符串 s,確定輸入字符串是否有效。

有效的情況指:

  1. 前括號必須用相同類型的括號閉合。
  2. 前括號必須以正確的順序閉合。

Example 1:

Input: s = "()"
Output: true

Example 2:

Input: s = "()[]{}"
Output: true

Example 3:

Input: s = "(]"
Output: false

暴力解法:

昨天半夜擼的,還是想不到什麼好點子:

class Solution {
    public boolean isValid(String s) {
        StringBuilder sb = new StringBuilder();
        sb.append(s);
        
        for(int i = 0; i<sb.length()-1; i++ ){
            if ( (sb.charAt(i) == '(' && sb.charAt(i+1) == ')') || 
                 (sb.charAt(i) == '[' && sb.charAt(i+1) == ']') || 
                 (sb.charAt(i) == '{' && sb.charAt(i+1) == '}') 
               ){
                sb = sb.deleteCharAt(i+1);
                sb = sb.deleteCharAt(i);
                i = -1;
            }
        }
        if (sb.toString() == ""){
            return true;
        }
        else{
            return false;
        }
    } 
}

79 ms,慘不忍睹。

Stack 解法:

Hint 中已經提到,應該使用 Stack :

class Solution {
    public boolean isValid(String s) {
	   Stack<Character> stack = new Stack<Character>();
	   for (char c : s.toCharArray()) {
		   if (c == '(')
			   stack.push(')');
		   else if (c == '{')
			   stack.push('}');
		   else if (c == '[')
			   stack.push(']');
		   else if (stack.isEmpty() || stack.pop() != c)
			   return false;
	   }
	   return stack.isEmpty();
    }
}

2 ms

Categories
算法 All

做題筆記:Longest Common Prefix (Java)

還滿難的一道題。

題目描述:

編寫一個函數來查找字符串數組中最長的共有前綴字符串。

如果沒有共有前綴,則返回一個空字符串""。

Example 1:

Input: strs = ["flower","flow","flight"]
Output: "fl"

Example 2:

Input: strs = ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.

Horizontal scanning:

自己嘗試的方法:

class Solution {
    public String longestCommonPrefix(String[] strs)
    {
        int size = strs.length;
        if (size == 0)
            return "";

        if (size == 1)
            return strs[0];

        Arrays.sort(strs);
        int end = Math.min(strs[0].length(), strs[size-1].length());
        int i = 0;
        while (i < end && strs[0].charAt(i) == strs[size-1].charAt(i) )
            i++;
        String pre = strs[0].substring(0, i);
        return pre;
    }
}

1 ms

Vertical scanning:

Solution 中提供的方法二:

public String longestCommonPrefix(String[] strs) {
    if (strs == null || strs.length == 0) return "";
    for (int i = 0; i < strs[0].length() ; i++){
        char c = strs[0].charAt(i);
        for (int j = 1; j < strs.length; j ++) {
            if (i == strs[j].length() || strs[j].charAt(i) != c)
                return strs[0].substring(0, i);             
        }
    }
    return strs[0];
}

Divide and conquer:

Solution 中提供的方法三:

public String longestCommonPrefix(String[] strs) {
    if (strs == null || strs.length == 0) return "";    
        return longestCommonPrefix(strs, 0 , strs.length - 1);
}

private String longestCommonPrefix(String[] strs, int l, int r) {
    if (l == r) {
        return strs[l];
    }
    else {
        int mid = (l + r)/2;
        String lcpLeft =   longestCommonPrefix(strs, l , mid);
        String lcpRight =  longestCommonPrefix(strs, mid + 1,r);
        return commonPrefix(lcpLeft, lcpRight);
   }
}

String commonPrefix(String left,String right) {
    int min = Math.min(left.length(), right.length());       
    for (int i = 0; i < min; i++) {
        if ( left.charAt(i) != right.charAt(i) )
            return left.substring(0, i);
    }
    return left.substring(0, min);
}

Binary search:

Solution 中提供的方法四:

public String longestCommonPrefix(String[] strs) {
    if (strs == null || strs.length == 0)
        return "";
    int minLen = Integer.MAX_VALUE;
    for (String str : strs)
        minLen = Math.min(minLen, str.length());
    int low = 1;
    int high = minLen;
    while (low <= high) {
        int middle = (low + high) / 2;
        if (isCommonPrefix(strs, middle))
            low = middle + 1;
        else
            high = middle - 1;
    }
    return strs[0].substring(0, (low + high) / 2);
}

private boolean isCommonPrefix(String[] strs, int len){
    String str1 = strs[0].substring(0,len);
    for (int i = 1; i < strs.length; i++)
        if (!strs[i].startsWith(str1))
            return false;
    return true;
}
Categories
All 技術 算法

做題筆記:Roman to Integer (Java)

題目描述:

將羅馬數字轉換為整數,具體規則略。

Example 1:

Input: s = "III"
Output: 3
Explanation: III = 3.

Example 2:

Input: s = "LVIII"
Output: 58
Explanation: L = 50, V= 5, III = 3.

Example 3:

Input: s = "MCMXCIV"
Output: 1994
Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.

自己的 Switch 暴力解法:

兜了好幾個圈……

class Solution {
    public int romanToInt(String s) {
        int num = 0;
        StringBuilder re = new StringBuilder();
        re.append(s).reverse();
        String[] split = re.toString().split("(?<=\\G..)");
        for (String i:split){
            switch(i){
                case "VI":
                    num = num + 4;
                    break;
                case "XI":
                    num = num + 9;
                    break;
                case "LX":
                    num = num + 40; 
                    break;
                case "CX":
                    num = num + 90; 
                    break;
                case "DC":
                    num = num + 400;
                    break;
                case "MC":
                    num = num + 900; 
                    break;
                default:
                    String[] sub = i.split("");
                    for (String j:sub){
                        switch(j){
                            case "I":
                                num = num + 1;
                                break;
                            case "V":
                                num = num + 5;
                                break;
                            case "X":
                                num = num + 10; 
                                break;
                            case "L":
                                num = num + 50; 
                                break;
                            case "C":
                                num = num + 100;
                                break;
                            case "D":
                                num = num + 500; 
                                break;
                            case "M":
                                num = num + 1000;     
                                break;
                        }
                    }
                }
        }
        return num;    
    }
}

意外發生了,本地 IDE 能跑出正確答案,但是在 Leetcode 上跑不出來,我竟然為這種問題浪費了不少時間,最終也沒解決……

正確精練的 Switch 解法:

class Solution {
	 public int romanToInt(String s) {
	    int nums[] = new int[s.length()];
	    for(int i = 0; i < s.length(); i++){
	        switch (s.charAt(i)) {
	            case 'M':
	                nums[i] = 1000;
	                break;
	            case 'D':
	                nums[i] = 500;
	                break;
	            case 'C':
	                nums[i] = 100;
	                break;
	            case 'L':
	                nums[i] = 50;
	                break;
	            case 'X' :
	                nums[i] = 10;
	                break;
	            case 'V':
	                nums[i] = 5;
	                break;
	            case 'I':
	                nums[i] = 1;
	                break;
	        }
	    } 
	    
	    int sum = 0;
	    for(int i=0; i<nums.length-1; i++){
	        if(nums[i] < nums[i+1])
	            sum -= nums[i];
	        else
	            sum += nums[i];
	    }
         
	    return sum + nums[nums.length-1];
	}
}

6 ms

運用 Hashmap:

class solution {
    public int romanToInt(String s) {
        Map map = new HashMap<>();
        map.put('I',1);
        map.put('V',5);
        map.put('X',10);
        map.put('L',50);
        map.put('C',100);
        map.put('D',500);
        map.put('M',1000);
        
        int result = map.get(s.charAt(s.length()-1));
        for(int i=s.length()-2; i>=0; i--){
            if(map.get(s.charAt(i)) < map.get(s.charAt(i+1))){
                result -= map.get(s.charAt(i));
            }
            else{
                result += map.get(s.charAt(i));
            }
        }
        return result;
    }
}

Categories
All 算法

做題筆記:Palindrome Number (Java)

題目描述:

給定一個整數 x,如果 x 是回文數,則返回 true。

回文數指一個整數向後讀和向前讀內容相同。

Example 1:

Input: x = 121
Output: true
Explanation: 121 reads as 121 from left to right and from right to left.

Example 2:

Input: x = -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

Example 3:

Input: x = 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

算術解法:

利用 Java 整數倒序計算:

class Solution {
    public boolean isPalindrome(int x) {
        if (x < 0) {
            return false;
        }
        
        int ori = x;
        int p = 0;
        while (ori != 0) {
            p = p * 10 + ori % 10;
            ori /= 10;
        }
        
        return x == p;
    }
}

9 ms,超過 87.67% 的答案。

轉換為 String 的解法:

進階要求 Follow Up 竟然問了一句 Could you solve it without converting the integer to a string? 原來我想到的已經是進階方法了,常規解法是轉換為 String:

class Solution {
     public boolean isPalindrome(int x) {
         char[] nums = String.valueOf(x).toCharArray();
         int start = 0;
         int end = nums.length-1;
         while(start < end) {
             if(nums[start] != nums[end]) return false;
             start++; end--;
         }
        return true;
    }
}

19 ms,超過 19.48% 的答案。

Categories
All 算法

做題筆記:Two Sum (Java)

驚恐自己要找不到工作了,開始做題,記錄一下做題筆記。第一道,是刷題界的 Hello World —— Two Sum。

題目描述:

給定一個整數數組 nums 和一個整數 target,返回兩個數字的索引,使它們相加為 target。

假設每個輸入都只有一個解決方案,並且不會使用相同的元素兩次。

可以按任何順序返回答案。

Example 1:

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].

Example 2:

Input: nums = [3,2,4], target = 6
Output: [1,2]

Example 3:

Input: nums = [3,3], target = 6
Output: [0,1]

Foreach 暴力解法:

第一次刷題,算法小白,只想得到這種方式:

class Solution {
    public int[] twoSum(int[] nums, int target) {
        int [] empty = new int[2];
        int len = nums.length;
        for(int i = 0; i < len; i++){
            for(int j = 0; j < len; j++){
                    if (nums[i]+nums[j] == target&& i != j){
                        empty[0] = i;
                        empty[1] = j;
                        return empty;
                    }
            }
        }
        return null;
    }
}

果不其然,106 ms,超過了10%的答案,好歹是通過了對吧……

以前上課做作業時,都是秉持著能跑就行的態度,習慣很差,現在我開始認真考慮優化的問題了,也算是一大進步。

Hashmap 解法:

看了 discussion 之後,追求高效率,這道題是應該使用 Hashmap 的:

class Solution {
    public int[] twoSum(int[] numbers, int target) {
        int[] result = new int[2];
        Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        for (int i = 0; i < numbers.length; i++) {
            if (map.containsKey(target - numbers[i])) {
                result[1] = i;
                result[0] = map.get(target - numbers[i]);
                return result;
            }
        map.put(numbers[i], i);
    }
    return result;
}
}

3 ms,超過85%的結果。

Categories
All 譯作

《重慶破曉》樣章

PDF下載(初版)

本版本為初版,未經校对,存在筆誤,僅供試讀。

請在 Amazon 上購買支持最新修訂版。

Dawn Over Chungking

此書獻給 Chen San,Huan-Erh和Taiyün。

Contents

譯者序. 4

出版社前言. 6

1.歸家的決定. 7

2.日本. 9

3.香港. 10

4.香港. 12

5.飛向重慶. 13

6.雨中漫步. 15

7.北碚巴士之旅. 20

8.北碚的第一天. 21

9.鎮上. 23

10.傅嫂. 24

11.北碚生活. 25

12.首次轟炸. 26

13.首次轟炸. 29

14.鎮上. 31

15.煉乳和咖啡. 35

16.唐老闆. 36

17.柑子灣. 37

18.柑子灣. 40

19.防空洞生活. 45

20.嘉陵江. 47

21.榛木. 50

22.宋家的防空洞. 51

23.H夫人與她的家人. 53

24.第二次轟炸. 54

25.第二次轟炸. 58

26.轟炸之後. 61

27.防空洞生活. 63

28.北碚生活. 66

29.內陸老鼠. 68

30.縉雲山. 69

31.縉雲山. 73

32.石華寺. 85

33.獅子峰. 86

34.山間. 88

35.山中防空洞. 90

36.空襲舊事. 91

37.遊擊隊之母. 92

38.自家被炸. 96

39.空襲後的北碚. 98

40.離開北碚. 102

41.北碚的最後一夜. 104

42.重慶. 107

43.重慶. 113

44.夜襲. 116

45.拜訪委員長. 119

46.蔣委員長和蔣夫人. 121

47.八一九. 123

48.離開重慶的那天. 126

49.離開. 127

50.夢想必將實現. 128

譯者序

在瀏覽林語堂先生相關的資料時,偶然發現他的三個女兒曾合著過一本名為 Dawn Over Chungking 的作品,記錄他們一家在重慶短短幾個月內的種種經歷,並且沒有譯本(當時沒找到)。重慶故事?那怎能沒有一個中文譯本呢?遂萌發了翻譯全書的念頭,年輕人精力旺盛,一股「說幹就幹」的熱血。

翻譯到一半才意外發現,原來前人已經譯過,民國31年,一位叫林平的前輩譯過標題為《重慶風光》的版本,由大公書店出版。由於那本書本身也是舊書了,只找到幾家舊書店在售,中國對舊書的數字化工作做得又特別差,我並未讀過該譯本。後來我在《中國現代文學總書目》中查閲到該譯本的目錄,發現原文中出現的許多韋氏拼音或其他舊拼音方案,林平前輩並未考證,使得像是「縉雲山」錯譯為了「青雲山」,「石華寺」錯譯為了「西華寺」,更別說「柑子灣」這種小地名錯譯為了「康仔灣」,連我一個本地人都按照原文所說的六里路左右在地圖上找了好久。在資訊匱乏的年代,音譯錯誤並不鮮見,甚至曾出現將 Chiang Kai-shek 誤譯為「常凱申」的荒唐先例。令人憂心的是,後人竟有以訛傳訛之勢——曾見文章稱林語堂曾寓居「西華寺」,這顯然與史實不符。我對自己的考據有足夠的信心,即使出於糾錯這個意義,我也應該把自己的譯本繼續完成。

另外在《愛國作家林語堂:林語堂政治態度轉變之研究(1895-1945年)》一書中第五章的注釋第31條提到,林平前輩的翻譯是有錯誤的。第一篇中林如斯提到回國的理由,是「某種自私的」,但林平前輩譯為「為了些私事」,直接與原文意思不符了。回頭審視我的這一句翻譯,好在,意思沒錯。嚴復先生的翻譯之標準信達雅,我的譯本「信」應是沒問題的。當然文筆方面實在過於粗糙,無法與前輩相比。

作為一個非翻譯專業人士,我曾自恃英文不錯而大膽嘗試翻譯,結果卻是貽笑大方。這才領悟到,翻譯並非僅考驗英文能力,真正考驗的其實是母語的文字功底。翻譯是一項極其艱辛的工作,其難度不亞於寫一本新書。近年來,有個新詞叫「翻譯腔」,專指那些未能擺脫原文語言框架、顯得生硬且不協調的翻譯作品或外文影視字幕。我也曾以此為「迷因」,嘲諷過不少譯作。然而,當自己真正動手嘗試翻譯後,卻絕望地發現全文都充滿了翻譯腔。同時,我也了解到譯者的薪酬並不理想,這讓我愈發體會到譯者的不易。

談及本文翻譯腔的體現,原文三姐妹寫作,尤其喜歡用We做主語,於是我的譯本就一直在「我們我們」,似乎特別冗餘。另外一些像是「Oh!」語氣詞,如果要遵從原文體現出來,簡直是翻譯腔的典例,但我沒有擅作主張刪掉它們。

有幾處巧妙的雙關語記憶深刻,All Clear指的是空襲結束,「危險全部清除」而發出的一種信號,我直接譯成了「警報解除」。但原文中有一段提到過她們的複雜心情也隨之 All Clear了,這種巧妙的雙關完全打我一個措手不及,沒能寫出很好的譯法。

再回到內容中來,文中所說的那棟在北碚的房屋,現在政府將其定名為「老舍故居暨北碚文協舊址」並列入文保單位加以保護。該屋本為林語堂先生自行購置,演變為今名其原因是林語堂先生攜其家人來重慶定居的時間極短,他在離開將房屋轉交給當時在北碚辦公的中華全國文藝界抗敵協會,而老舍作為協會骨幹,隨後在此辦公數年。嚴格意義上說,此建築應命名為「老舍及林語堂故居」。

在北碚讀書時,這棟建築是我從地鐵站到校園的必經之地,對整個歷史背景都有了解時,彷佛就與她們站到了同一時空,縉雲山、北溫泉、復旦大學、乃至於嘉陵江對岸的那棟「鬼屋」,都是我曾實際拜訪過的地方,讀來饒有趣味。

可惜此書無緣出版,以個人身分難以取得版權,若要自費,費用高達約十萬元之巨。不過,若僅是自行刊載於部落格上,便沒有侵權的風險。正如開頭所說,北碚的故事怎能不講給北碚人聽呢?無論多少年後再讀到二戰期間的風雲變幻,心情都不會毫無波瀾。這部拙作《重慶破曉》謹此呈上,還望各位方家不吝指正,笑納這份微薄心意。

111年清明於北碚

出版社前言

林語堂的三位千金,為我們帶來了這篇關於她們重慶「朝聖」之旅的故事。兩年前,她在們的著作《我們家》(Our Family)結尾,真切表達了對戰爭的感觸及歸國的熱切渴望。如今,她們已如願以償,冒險飛越日軍防線,深入中國內地,並在那裡度過了三個月。這段期間,她們歷經四十次空襲,其中最猛烈的一次就發生在離她們不得不離開重慶的兩天前。她們萬分不捨地踏上歸途,只因父親林語堂先生需返回美國,繼續為中國發聲著書。

林如斯十七歲,林太乙十四歲,妹妹十歲。

1.歸家的決定

林如斯

過去三年,當我們享受著悠閒的異國旅行和自我放逐時,我們的同胞卻身陷苦難與鬥爭之中。我再也無法忍受這些思緒,無論如何都必須回國。或許這份衝動依然帶著自私的成分,但確實是時候回去了。

每當我在報刊雜誌上讀到一丁點關於重慶的消息,總是恨不得能了解更多,可獲取資訊的管道在哪呢?今日十行明日廿行罷了,根本無法滿足我的需求。每次刊登出照片更是一種奢侈的享受,但那種美好的感覺持續不了多久,一旦照片上的草葉都數完了,便無事可做了。

「親愛的,你不開心嗎?你現在身在異鄉,並非戰火中的中國。」我的回答當然不會是「開心」,卻也沒辦法直接說「不開心」,他們期待聽到一個合理的解釋。我又能怎麼解釋呢?我無法回答「不開心」,即使能,也沒人能理解我真正的想法。我只好匆忙給出一個含糊其辭的答覆,然後禮貌地走開。

嶄新的中國,已然巍然屹立於海的那一端,對我而言,卻仍蒙著一層神秘的面紗。每當我倦於學習,或是心緒激盪之時,腦海中總會浮現那片土地。這份思念對我來說是一劑良藥,它驅散了我的憤怒,帶來些許慰藉。更多,我想了解更多!

我聽過不少關於那個新中國的議論,褒貶不一。除了道聽途說和新聞報導,我對它一無所知,但我依然堅定地站在支持的一方。我討厭那些質疑、猜忌或嘲笑我們的人。每當他們發現一絲微小的紕漏或不足,便欣喜若狂地以此作為攻擊新中國的藉口。我常聽這些人為這場大戰中的小問題爭論不休,我心想,他們錯了。

正是這些自鳴得意的體面姿態,讓真正有需要的人得不到幫助。我無法對這些「體面人」直言:「幫幫中國!我們的同胞正在受苦,他們需要衣服、食物、藥品,幫幫那些保家衛國的戰士!我們的同胞應當得到幫助!」在這些「體面人」看來,這種話荒謬甚至幼稚。你必須這樣說:「中華民族為抵禦極權主義和日本侵略者的威脅而自衛,他們正遭受糧食短缺和醫療匱乏的痛苦,因此,一個生活在和平國家的公民有必要向中國提供一切可能的援助!」然而,當我費盡心力說出這番話時,前半部分大概已經被我遺忘,那些「體面人」也早已拋諸腦後。一段悅耳、對「體面耳朵」而言熟悉又舒緩的聲音,或許能讓他們勉強抓住最後幾個字,即使印象也十分微弱了。然後,經過數小時的深思熟慮,他們或許會決定向中國寄出十美元。天哪,讓我的國家獲得區區十美元,竟然需要如此冷靜、如此理性的給予?我很抱歉,帶著真情實感的平實話語,對他們來說是無法理解的。

他們能理解的語言,只剩下一個空洞的骨架,所有該說的都已經說了,而且能說得更快。我很清楚人們為何不願伸出援手——那都是自身利益在作祟,多麼可悲啊!那些用冠冕堂皇的語言寫成的呼籲書,就像一塊充滿了奇怪香料和薄荷的肉。如果吃的人還能記得那曾是塊肉,就已經非常幸運了。但肉本身的滋味,又哪裡去了呢?

這種體面,或許能被稱為穩定或正常,它確實構成了我們所說的「正常生活」。然而,對於更宏大的理想和美好的夢想來說,這卻是多麼巨大的阻礙啊!我曾和一位朋友討論此事,她提出一個關於自我保護的觀點:人類正是因為這種自利和懶惰才學會了生存;在我們身體的系統裡,快速遺忘痛苦是生存的必要條件。過去我傾向於同意她的看法,但現在我堅決不同意。我堅信,如果這個時代的每個人都能拋棄私利,努力終結所有的衝突和折磨,世界就能有所改變。這是一個不願輕易忘記痛苦的時代,我看到身處這種「穩定」或「正常」生活中的普羅大眾,是如何將慈善活動和援助有需要的人視作兒戲。對他們而言,這不過是另一個玩具,另一種增添社會瑣事和嫉妒的方式。在慈善舞會上跳舞該有多痛苦啊!然而對大多數人來說,這卻是一種美妙的消遣。以「甜蜜的慈善」之名處理舊衣服,又是多麼的便捷啊!

我受夠了!我將去尋找真正的慈善和人性,我知道我會在重慶找到它——而且我確實找到了。

回家——世上還有什麼比這更美好的旅程呢?在國外待得越久,新的思維和觀念固然逐漸形成,但我們對中國的印象卻反而越來越模糊。我們絕不能讓中國的形象在腦海中淡化,這是我們決不允許的。因此,我們選擇了回家。這一次,我們不是要回到舒適的舊居,而是踏上一片正在掙扎的故土。我們將前往家人從未涉足過的地方——中國的心臟地帶。戰前,我們對四川的印象僅止於壯麗的峽谷、激烈的內戰以及鴉片,這些都像是一個外國人過時的片面認知。總之,這次旅程對我們來說是一次嶄新體驗,但我們依然將其視為回家,因為四川是中國的一部分,在中國的任何地方,即使是西藏的山谷,都可以是家。

我時常思念重慶,竭盡全力地去想像她,可惜幾乎都是徒勞。由於此行是回家而非遊歷,收拾行李的方式也大相徑庭。我們像士兵般堅定站立,昂首挺胸,向朋友們驕傲地告別。目標:重慶!

我不會用那種半諷刺的微笑或冷漠的語氣來講述我的故事,儘管那似乎是吸引聽眾、贏得信任的好方法。我只是不想對自己嚴肅看待的事情表現得毫不在意,也不想假裝自己是個經歷歲月洗禮、情感早已磨平、不再為任何事物感到悲喜的老人。

2.日本

妹妹(林相如)

「日本人」[1]和「日本」這兩個英文單詞,是世上最糟糕的詞彙。你不能怪造字的人有所偏頗,因為日本人就是那副德性,完全配得上這樣的稱謂。我真希望可以去轟炸日本天皇,然後讓火山吞噬天皇和日本,那必將是我此生最快樂的一天。如此一來,再也不會有人想起那群企圖征服世界的侏儒了。我寧願死,也絕不做日本人的奴隸。你休想強迫我愛上那個所謂的「櫻花之國」,哼,這個稱謂,根本就是他們山寨來的!他們是抄襲者!我最喜歡的日本人,就是日本叛徒。戰爭結束那天,我準備生一把大火,燒光所有日本貨。到那天,自然只會剩下一些苟活的日本婦女和兒童,我們也不必為難她們,就讓她們獨自埋葬日本吧。我會跑到人們家裡,分發那些用來插在窗外的旗子,任憑空襲警報和鑼鼓聲響徹雲霄。誰在乎呢?哦!那一天,沒有人可以規定我該做什麼。我要穿上紅色的衣服,和農民們一起跳舞。

3.香港

林如斯

這就是香港嗎?我帶著先入為主的觀念踏入九龍灣,也帶著同樣的印象離開,畢竟只住了兩個星期,這樣的想法倒也合情合理。是的,這的確與我想像中的一模一樣。

清晨時分,水手拋錨入港,在晨曦的微光下,香港顯得純淨無瑕。最先看到中國人活動的跡象,是廣東婦女和孩子們乘著舢板,劃向巨大的汽船。婦女們身著深色衣裳,舢板棕黑,在水面上勾勒出剪影。男孩們像在夏威夷那樣跳入海中撿拾硬幣,女孩們則拿著綁在竹竿上的網兜來收錢。舢板上還有嬰兒和小女孩,他們都瞇著眼睛,仰望著那高大宏偉的汽船。儘管海面波濤洶湧,舢板搖搖晃晃,孩子們卻毫不在意。船上的每個人都倚在欄杆上觀望,除了少數喜歡在甲板上散步的中國人。

一股奇特的感覺籠罩著我——家,一個戰火中的家!我記得曾讀到過舢板被轟炸沉沒的報導——這個念頭一閃而過,很快就被即將再次見到親人的興奮所取代。碼頭上人潮湧動的中國人,對面滿載中國人的渡船,以及那頭同樣擠滿中國人的香港街道——我的同胞們!他們或汗流浠背,或閒庭信步,或高聲呼喊,或焦急等待,他們都是中國人。中國人的臉龐,中國人的身形,中國人的眼睛,中國人的髮色!我可以看,看,不停地看。無論白天黑夜,他們都是中國人。我可以盡情地看,補償過去幾年見到的所有外國人。是的,我會一直看,直到我不再覺得中國人的臉有任何奇特之處,直到我對看見他們習以為常,那時我就心滿意足了。那時,我才算真正回歸,因為我不再對中國人的面孔感到新鮮。即使這裡不是中國的內陸,但至少這些人,是我的同胞!

在香港的兩個星期裡,服飾、美食和商店似乎治癒了我們的思鄉病,讓我們的身心得以徹底放鬆。與不同的親戚見面,和表親們聊到深夜,這些都非常有趣,他們真的絲毫未變。我們整天都在聊天,如果我不說話,也會有人交談,發出我只有在夢中才能聽到的聲音。這裡到處堆滿了箱子,無論走到哪裡都會遇到,甚至不小心會用膝蓋撞到它們。把我們的東西都丟在箱子後面吧,有時我真希望把自己關進一個箱子裡,以遠離所有這些箱子。每次出門,似乎都像是在趕辦一件要緊事,因為在香港,一切都顯得格外重要,我們必須爭分奪秒地做每一件事,彷彿一切都會稍縱即逝,永遠消失。所以我們緊緊抓住香港的一切,直到被所有這些事務壓迫得喘不過氣來。

我們要搭飛機,必須攜帶足夠的衣服,但又不能超過行李限額。對某些人來說,這個限額似乎太低了,因此我們只帶了一雙拖鞋、睡衣和兩件內衣。還有一些人認為完全可以塞進三件衣服,但我們得為其他東西留出足夠的空間。媽媽的體重計這次可派上用場了,再沒人抱怨它。我們似乎裝進了很多東西,或許也沒那麼多,總之結果自然是行李超重了。稱重後,我們拿出了一些東西,又硬塞進去一些別的。實際上,我也不知道行李最終是超重還是達標,也不知道我們到底放了些什麼,又拿出了些什麼。我們預計大件行李會在三個月後經印度支那抵達重慶,但由於即將爆發的印支危機,它從未被送入中國——不過這是後話了。

我們在香港的生活就像我們的行李一樣,在這兩個星期快要結束時,我們情緒緊張,只能聽天由命。

混亂瀰漫著整個香港。街道上,穿著無袖服裝的時髦女孩與絕望的難民擦肩而過。有人在空調茶室裡喝著檸檬水,吃著巧克力蛋糕,聽著假聲藍調,而就在幾個街區外,有人卻露宿街頭,無家可歸。整個城市被劃分為一個光鮮的「前台」和一個龐大的「後台」,後者佔據了更大的面積。街道上人頭攢動,最令人心痛的,是看到一個眼睛被燒得紅腫的嬰兒可憐兮兮地坐在母親身邊的梳妝台上。如果中國人需要憐憫,那會是在香港,而不是在內地。這是一個窮人更覺貧窮,流浪漢愈加迷茫的地方。即使在最上流的社會和最隱秘的角落中,也是一片雜亂無章。這是一個紊亂的租界,東西方的品味在此交匯,東西方的怪癖在此融合,東西方多餘的東西也悉數混雜在一起,一切都被攪拌成五彩繽紛、令人作嘔的奶油溫醬。

香港有四類人。首先是那些在香港土生土長,從小浸潤在香港環境中的人,無論有沒有戰爭,他們都只對商業上的成功感興趣。試想一個不同的情境:一個出生在江蘇的人,他的商店被日本人燒毀了,那麼他自然會憎恨日本人,個人利益迫使他愛國。但目前為止他並沒有真正受到一絲傷害,所以他仍然經營著自己的生意。第二類是在香港擔當特殊職責和工作的人。第三類是選擇南逃而沒有北逃的廣州難民。第四類,那些明明知道戰爭,卻依然照常生活的人,彷彿世上從未開過一槍。內地人談及香港人時,指的就是他們,那絕非什麼讚美之詞。

我不想在香港多待一天了,我寧願住在其他國家,住在每天都遭受空襲的我的祖國,就算那裡很沉悶很混亂。

4.香港

林太乙

香港,一個連在哪裡吃飯、和誰吃飯都早已被安排好的地方。我們有許多親戚特地從廈門和上海趕來看望我們。當我們的船抵達九龍時,我見到父親和母親兩大家族裡的各式姑婆姨嬸,還有一個小侄子,那場面真是令人震驚。由於我們很久沒見,許多人在外表和行為方式上都有了巨大變化,我和妹妹尷尬地用手肘輕推彼此。

香港之所以令人感到可怕,是因為世界各地的人都匯聚於此,而大多數在港的中國人都已被西方的規矩和禮儀所「醃漬」——意思是他們的行為方式深受西方影響。

在我們準備啟程前往心之所向的中國內陸前,我們開始預購物資。有人告訴我們重慶很多東西都買不到,於是我們在行李箱裡塞滿了洗髮水、肥皂、餅乾、糖果、鹹菜、牙膏、牙刷、香煙等大量物品。這些行李被送往海防,並預計通過印度支那鐵路運回,但最終它們都沒有抵達。我們大部分時間都在整理行李,所幸有這麼多表親幫忙。

哦,香港!我們為前往重慶做好了所有準備,只剩下最後的等待。我對空襲一無所知,但我知道自己必須去那個魂牽夢縈的重慶。

5.飛向重慶

林太乙

大約是晚上九點,一如每次離別前的慣例,旅客們蜂擁而至,互道珍重。父母臉上掛著僅存的笑容,卻一言不發,他們仍在為最後關頭仍在打包的行李而擔憂。空氣中瀰漫著「離別」二字,它被小心翼翼地包裹在每一句話中,顯得格外沉重。

我迫不及待地想去重慶,離開這座空蕩蕩的城市。我們都太疲倦了,開始打起瞌睡。

我和媽媽相擁而眠,皎潔的滿月高高懸掛,光芒灑滿我躺臥的房間。對於即將前往重慶——我們的戰時首都——我感到無比興奮。我絲毫不知道空襲是什麼樣子,但我並不害怕。

夜深人靜,時鐘滴答作響。生活似乎總是如此奇特,人們為何會為了一片土地而相互爭鬥。人們如何戰鬥,如何生活,如何嫉妒,如何抱怨,如何活得彷彿永遠不會死去,彷彿他們是不朽的,然後繼續戰鬥。他們不停地爭鬥,卻忘記了享受生活。人們在年老時才湧現出旺盛的好奇心,在他們去世時才剛學會足夠的東西來享受生活。死後一定有著什麼吧,否則人不可能擁有這種求知欲,能容忍學夠了就死去,知識隨之化為烏有。

人們為何拼命工作,卻從未真正生活過?人們為何終其一生為金錢操心,試圖不讓一分一毫溜走?

鐘聲敲響了一下,我們計劃兩點半起床,三點到機場。但沒有人知道飛機的具體起飛時間,畢竟飛越日占區的危險重重。

月光比想像中更亮,這顆高懸的明月,予人以沉靜和憂傷。

漫長的幾小時彷彿過去了好幾年,我們等待著,等待著,時間來到兩點半。

鬧鐘響起,我們打著哈欠,伸著懶腰起床,幾乎忘記了起床的目的。

我們開車穿過香港這座死氣沉沉的城市,我永遠不會喜歡它。商店大門緊閉,窗戶上釘著木板。

我們終於到了機場。這是我第一次如此近距離接觸飛機,我開始為自己這個「鄉巴佬」感到尷尬。我們的口袋裡塞滿了口香糖,有人曾說口香糖在飛機飛到很高時會派上用場。我們從咖啡店一直跑到海關辦公室,稱重和檢查都在那裡進行。來回奔跑的過程中,口香糖不停地從口袋裡掉出來。這是一個相當大的機場,月光讓它看起來像是被雪覆蓋了一樣。我的肚子開始咕嚕作響,最後甚至痛了起來,但我真的特別興奮。

機組人員說現在月亮太亮了,不能起飛,我們必須等它再黯淡一點。

微風讓每個人都興奮起來,感覺很奇特,卻又無法形容自己究竟是什麼感覺。

我們直到四點半才起飛,這時月亮已經被雲層遮住了一部分。那些堅持到最後一刻的親戚們開始向我們揮手,但揮得太快了,就像以往一樣,我們的手和胳膊都酸了。

當飛機開始飛行時,我感到一陣暈眩,腦海裡只有一件事清晰無比——我正在前往重慶。隨後,我便打起了瞌睡。


[1] 在林太乙所著《林家次女》,稱此人為「國榮兄」。譯者注。

Categories
All 雜文

翻譯嘗試暨譯者序

在瀏覽林語堂先生相關的資料時,偶然發現他的三個女兒曾合著過一本名為 Dawn Over Chungking 的作品,記錄他們一家在重慶短短幾個月內的種種經歷,並且沒有譯本(當時沒找到)。重慶故事?那怎能沒有一個中文譯本呢?遂萌發了翻譯全書的念頭,年輕人精力旺盛,一股「說幹就幹」的熱血。

翻譯到一半才意外發現,原來前人已經譯過,民國31年,一位叫林平的前輩譯過標題為《重慶風光》的版本,由大公書店出版。由於那本書本身也是舊書了,只找到幾家舊書店在售,中國對舊書的數字化工作做得又特別差,我並未讀過該譯本。後來我在《中國現代文學總書目》中查閲到該譯本的目錄,發現原文中出現的許多韋氏拼音或其他舊拼音方案,林平前輩並未考證,使得像是「縉雲山」錯譯為了「青雲山」,「石華寺」錯譯為了「西華寺」,更別說「柑子灣」這種小地名錯譯為了「康仔灣」,連我一個本地人都按照原文所說的六里路左右在地圖上找了好久。在資訊匱乏的年代,音譯錯誤並不鮮見,甚至曾出現將 Chiang Kai-shek 誤譯為「常凱申」的荒唐先例。令人憂心的是,後人竟有以訛傳訛之勢——曾見文章稱林語堂曾寓居「西華寺」,這顯然與史實不符。我對自己的考據有足夠的信心,即使出於糾錯這個意義,我也應該把自己的譯本繼續完成。

另外在《愛國作家林語堂:林語堂政治態度轉變之研究(1895-1945年)》一書中第五章的注釋第31條提到,林平前輩的翻譯是有錯誤的。第一篇中林如斯提到回國的理由,是「某種自私的」,但林平前輩譯為「為了些私事」,直接與原文意思不符了。回頭審視我的這一句翻譯,好在,意思沒錯。嚴復先生的翻譯之標準信達雅,我的譯本「信」應是沒問題的。當然文筆方面實在過於粗糙,無法與前輩相比。

作為一個非翻譯專業人士,我曾自恃英文不錯而大膽嘗試翻譯,結果卻是貽笑大方。這才領悟到,翻譯並非僅考驗英文能力,真正考驗的其實是母語的文字功底。翻譯是一項極其艱辛的工作,其難度不亞於寫一本新書。近年來,有個新詞叫「翻譯腔」,專指那些未能擺脫原文語言框架、顯得生硬且不協調的翻譯作品或外文影視字幕。我也曾以此為「迷因」,嘲諷過不少譯作。然而,當自己真正動手嘗試翻譯後,卻絕望地發現全文都充滿了翻譯腔。同時,我也了解到譯者的薪酬並不理想,這讓我愈發體會到譯者的不易。

談及本文翻譯腔的體現,原文三姐妹寫作,尤其喜歡用We做主語,於是我的譯本就一直在「我們我們」,似乎特別冗餘。另外一些像是「Oh!」語氣詞,如果要遵從原文體現出來,簡直是翻譯腔的典例,但我沒有擅作主張刪掉它們。

有幾處巧妙的雙關語記憶深刻,All Clear指的是空襲結束,「危險全部清除」而發出的一種信號,我直接譯成了「警報解除」。但原文中有一段提到過她們的複雜心情也隨之 All Clear了,這種巧妙的雙關完全打我一個措手不及,沒能寫出很好的譯法。

再回到內容中來,文中所說的那棟在北碚的房屋,現在政府將其定名為「老舍故居暨北碚文協舊址」並列入文保單位加以保護。該屋本為林語堂先生自行購置,演變為今名其原因是林語堂先生攜其家人來重慶定居的時間極短,他在離開時將房屋轉交給當時在北碚辦公的中華全國文藝界抗敵協會,而老舍作為協會骨幹,隨後在此辦公數年。嚴格意義上說,此建築應命名為「老舍及林語堂故居」。

在北碚讀書時,這棟建築是我從地鐵站到校園的必經之地,對整個歷史背景都有了解時,彷彿就與她們站到了同一時空,縉雲山、北溫泉、復旦大學、乃至於嘉陵江對岸的那棟「鬼屋」,都是我曾實際拜訪過的地方,讀來饒有趣味。

可惜此書無緣出版,以個人身分難以取得版權,若要自費,費用高達約十萬元之巨。不過,若僅是自行刊載於部落格上,便沒有侵權的風險。正如開頭所說,北碚的故事怎能不講給北碚人聽呢?無論多少年後再讀到二戰期間的風雲變幻,心情都不會毫無波瀾。這部拙作《重慶破曉》謹此呈上,還望各位方家不吝指正,笑納這份微薄心意。

111年清明於北碚