一、簡答題
1、串的邏輯結構是什麼?
答:串是字串的簡稱,它也是一種線性結構。串是由零個或多個字元組成的有限序列。
2、空串與空格串的區別是什麼?
答:空串:含零個字元,長度為0;
空格串:只包含空格字元。
3、兩個串相等的充分必要條件是什麼?
答:兩個串相等的充分必要條件是:當且僅當兩個串的長度相等並且各個對應位置上的字元都相同時,這兩個串才是相等的。
4、空串是任意串的子串嗎?串自身呢?
答:空串是任何串的子串;乙個串中任意個連續字元組成的序列都是該串的子串,所以串本身也是其子串。
5、什麼是結點大小?
答:通常將鏈串中每個節點所儲存的字元個數稱為節點大小。
6、什麼是模式匹配?
答:設有主串s和子串t,定位子串t就是要在主串s中找到乙個與子串t相等的子串。通常把主串s稱為目標串,把子串t稱為模式串,因此定位也稱作模式匹配。
7、kmp的特點是什麼?
答:消除了主串指標的回溯,從而使演算法效率有了某種程度的提高。
已知模式串t為:「abcdababcdae」,求出給出模式串寫出next。
答:模式串用next陣列存放它的「部分匹配」資訊。實際上,模式串中的部分匹配資訊就是真子串。
對於n號字元x,前面的子串中,找出與模式串t的開頭字元匹配的有幾個。
j 0 1 2 3 4 5 6 7 8 9 10 11
t[j] a b c d a b a b c d a e
next[j] -1 0 0 0 1 1 2 1 2 3 4 5
二、演算法題
編寫演算法實現串的置換操作replace( s, t, r), 即將串s中所有與串t相等的子串置換為串r.。
資料結構 串
輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。結果請按字母順序輸出。我們求整個字串的排列,可以看成兩步 首先求所有可能出現在第乙個位置的字元,即把第乙個字元和後面所有的字元交換。第...
資料結構 串
串名 串值 串長 空串 空格串。字串的比較 字串模式匹配演算法 1.簡單字串模式匹配演算法 最簡單實現是用字串p的字元依次與字串t中的字元進行比較。實現思想是,首先將子串p從第0個字元起與主串t的第pos個字元起依次比較對應字元,如全部對應相等,則表明已找到匹配,成功終止。否則將子串p從第0個子串起...
資料結構 串
串 又稱字串 是一種特殊的線性表,它的每個結點僅由乙個字元組成。在早期的程式語言中,串僅在輸入或輸出中以直接量的形式出現,並不參與運算。隨著計算機的發展,串在文字編輯 詞法掃瞄 符號處理以及定理證明等許多領域得到越來越廣泛的應用。在高階語言中開始引入了串變數的概念,如同整型 實型變數一樣,串變數也可...