原创 [GoF設計模式]Proxy模式和Strategy模式的C++實現

  這個星期寫寫設計模式吧,一天兩到三個,今天起個頭兒。   今天要寫的是代理模式(Proxy)和策略模式(Strategy),用C++做個簡單的例子實現。   先不太規範了,一般的類就寫在一個頭文件中得了,連定義帶實現,以後回過

原创 [GoF設計模式]Iterator模式和Singleton模式的C++實現

【Iterator模式】 提供了一種順序訪問一個聚合對象(aggregate)中各個元素,而又不需要暴露該對象的內部表示的。其關鍵是將對列表的訪問和遍歷從列表對象中分離出來並放入一個迭代器(iterator)對象中。迭代器定義個一個訪問該

原创 [TB-Exam]求命中率的一個題

一個'U','G'的序列,每個位置的猜測根據其前N個字符的‘U’or'G'的相對數目中較大(相等時以U猜)的,求猜測的最終的命中率 [解答] /***********************************************

原创 [GoF設計模式]Bridge模式和Template模式的C++實現

【Bridge模式】 使用組合的方式將功能的需求的抽象和實現解耦,這樣一來抽象和實現可以分別獨自的變化。由此解決需求變更可能帶來的麻煩,即類的迅速膨脹,如一般的情況下抽象和實現可能需要M*N個類來解決問題,而使用Bridge模式則只需要M

原创 利用動態規劃求迷宮的最優值問題

【問題】7月5號的那道題的動態規劃解法和如下這道的動態規劃解法大體一致   從【0,0】出發走到底線處即停止,矩陣中每個元素的值爲該處可以獲得的價值,問到達底線時能獲得的最大值。 【動態規劃】  規劃一個二維矩陣和4*4,然後按照一橫一

原创 [GoF設計模式]Flyweight模式和State模式的C++實現

【Flyweight模式】  一個應用程序創建了太多的對象,會造成很大的存儲開銷,特別是大量輕量級的對象。對於這種情況,可以將對象的狀態分成外部狀態和內部狀態,將可以被共享(不變化)的狀態作爲內部狀態存儲在對象中,而外部狀態則可以將外部對

原创 [TB-EXAM]小飛電梯-停一層(暫未考慮停N層)

電梯有N層,從底層到第i層的人有iFloorPassengerNum[i]個人,電梯只能停一次的話,求停那一次是的步行的層數最少。從下往上依次考察停某層的話,是Y-(NAbove-NFloor-NBottom)達到最小值, NAbove指

原创 [ALIB2-EXAM]數字的S形連續打印

打印數字,一行三個,從第1行開始,奇數行正序,偶數行逆序。即S形打印。 (面試:一分鐘寫出程序)   /*******************************************************************

原创 [GoF設計模式]Builder模式和Facade模式的C++實現

昨天晚上寢室斷網了,今天補發。 @【Builder模式】 Builder創建者模式要解決的問題是:當我們要創建的對象很複雜的時候(通常由很多其他的對象組合而成),我們要複雜對象的創建過  程和這個對象的表示分開來,這樣做的好處是可以

原创 解一道通過預處理來匹配字符串的題目

【問題】    假設一字符串已被預處理,其中出現過的每一字符其出現的位置已被存到已排序列表(sorted list)中,例如    A = "this is a text"    預處理後會得到一下列表:    a : 9   

原创 [Gof設計模式]簡單工廠模式和工廠模式的C++實現

【簡單工廠模式】-Simple Factory Pattern    圖解:   代碼:(簡單起見將類定義和類實現放在同一個頭文件中) /** * Pizza Class (Abstract Class) */ #ifnd

原创 [GoF設計模式]Composite模式和Visitor模式的C++實現

【Composite模式】  組合模式的關鍵是抽象類,它既可以代表圖元(Leaf),也可以代表圖元的容器(Composite)。組合模式可以用於創建樹狀的結構。用於使用抽象類接口與組合結構中的對象進行交互。如果接收是一個葉結點,則直接處理

原创 [GoF設計模式]Interpreter模式和Memento模式的C++實現

  【Interpreter模式】-解釋器模式 給定一個語言(如下例中的字符A,B...),定義它的文法表示(下例中的VariableContext,map中存放從字符到整數的轉換),定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子

原创 BM(Boyer-Moore)字符串匹配算法的實現(一種有效常用的字符串匹配算法)

除了已知的KMP模式匹配算法外,還有一種比較常用的匹配算法BM算法(Boyer-Moore)字符串匹配算法   【算法的C++實現如下】:    /********************************************

原创 解7月4號的那道題,計算迷宮中可行路徑的條數

好長時間沒寫了,瞎忙活了兩個來月,一直沒什麼心思繼續下去,今天下午把之前的那道題想了想,挺簡單的方法,直接用遞歸就可以了.用遞歸可以算出總數,並且可以輸出可能的路徑。但是效率不佳,由於可能的數據量龐大的情況下,數據量就會很大,這樣效率就會