程式設計珠璣 變位詞程式的實現

2021-06-29 00:29:20 字數 1220 閱讀 5270

這個程式的實現有助於壓縮key的大小,使查詢效率更高

1.問題描述

給定一本英語單詞詞典,請找出所有的變位詞集。所謂的變位詞是指,組成各個單詞的字母完全相同,只是字母排列的順序不同。

2.解決思路

程式設計珠璣的變位詞程式要按照三個步驟來執行,其中前乙個步驟程式的輸出作為下乙個步驟程式的輸入:

第一:程式標識單詞,第二:程式排序標識後的檔案,第三:程式將這些單詞壓縮為每個變位詞類一行的形式

下面是程式設計珠璣的舉例,僅有6個單詞的字典的處理過程

由以上可看出需要三個程式的處理

1).sign程式:假設輸入單詞的長度不超過100,對每個輸入的單詞依照字母進行排序,將結果輸入這個單詞所對應的」簽名「

2).sort程式:依照1)程式排序後的輸出的「簽名」,對其輸出的結果排序,如上圖.

3).squash程式:將同乙個變位詞類中的各個單詞放到同一行中

3.**實現

sign程式:

#include #include 

#include

#define wordmax 100

int charcomp(const

void *x , const

void *y)

intmain()

return0;

}

sort程式:可以呼叫系統排序的程式

squash程式:

#include #include 

#include

#define wordmax 100

intmain()

printf("\n

");return0;

}

4.使用命令執行程式設計珠璣上面通過下面的命令構建變位此列表

sign < dictionary | sort | squash >gramlist.txt

該命令將檔案將檔案dictionary輸入到程式sign,連線sign的輸出到sort,連線sort的輸出至squash,並將squash的輸出寫入檔案gramlist。

程式設計珠璣 變位詞程式的實現

這個程式的實現有助於壓縮key的大小,使查詢效率更高 1.問題描述 給定一本英語單詞詞典,請找出所有的變位詞集。所謂的變位詞是指,組成各個單詞的字母完全相同,只是字母排列的順序不同。2.解決思路 第一 程式標識單詞,第二 程式排序標識後的檔案,第三 程式將這些單詞壓縮為每個變位詞類一行的形式 下面是...

程式設計珠璣 第二章變位詞程式的實現

題目描述 給定乙個英語字典,找出其中的所有變位詞集合。例如,pots stop tops 互為變位詞,因為每乙個單詞都可以通過改變其他單詞中的字母的順序來得到。程式主要有三部分組成,sign sort和squash。我們用下圖來說明 假設要處理的單詞有六個pans pots opt snap sto...

《程式設計珠璣》學習總結2 變位詞

第二章主要圍繞三個問題 1 給定乙個最多包含40億個隨機排列的32位整數的順序檔案,找出乙個不在檔案中的32位整數 2 給定乙個n元一維向量,迴圈左移i個位置,如n 8,i 3時,abcdefgh變為defghabc 3 如pots stop和stops互為變位詞,每個單詞都可以通過其他單詞改變字母...