ACM 古老的密碼(排序qsort)

2022-07-25 04:42:07 字數 946 閱讀 8301

古老的密碼

題目描述:

給定兩個長度一樣且不超過100的字串,判斷是否能把其中乙個字串的各個字母重排,之後對26個字母做乙個一一對映,使得兩個字串相同

例如,jwpudjstvp重排後可以得到wjdupsjpvt,之後把每個字母對映到它的前面乙個字母,得到victorious,輸入兩個字串,輸出yes或者no

題目分析:

因為字母可以重排對映(不一定往前對映),所以每個字母的位置並不重要,重要的是每個字母出現的次數

①統計兩個字串每個字母出現的次數,得到兩個陣列cnt1[26],cnt2[26]

②之後我們排序下,排序之後結果相同,對映的字元就相同

**:

1 #include 2 #include 3 #include 

4#define maxn 101 56

int cmp(const

void *a, const

void *b)710

/*11

int cmp(const void *a, const void *b)

1215

*/16

intmain()

1732

33//

排序34 qsort(cnt1,26,sizeof(cnt1[0]),cmp);//

qsort快速排序

35 qsort(cnt2,26,sizeof(cnt2[0

]),cmp);

3637

for(int i=0; i < 26; i++)

3844

}45 printf("

yes\n");

46}4748

return0;

49 }

例題4 1 古老的密碼

給定兩個長度相同且不超過100 的字串 判斷是否能把其中乙個字串的各個字母重排 然後對26個字母做乙個一一對映,使得兩個字串相同。例如 jwpudjstvp 重排 後可以得到wjdupsjpvt 然後把每個字母對映到到前乙個字母 得到victorious。輸入兩個字串 輸出yes 或者是 no 分析...

4 1 古老的密碼(UVa1339 《排序》

古羅馬帝國與各部門有乙個強有力的 系統,包括乙個秘密服務部門。重要的檔案以加密的形式傳送防止竊聽。在那個時代最流行的密碼被稱為替代密碼和置換密碼。例如,應用替代密碼,改變所有字母 a 到 y 字母表中的下乙個字母 注 z 變成 a 如 victorious 得到資訊是 wjdupsjpvt 置換密碼...

快速排序qsort的使用

表頭檔案 include 定義函式 void qsort void base,size t nmemb,size t size,int compar const void const void 函式說明 引數base指向欲排序的陣列開頭位址,引數nmemb代表陣列中的元素數量,每一元素的大小則由引數...