其實亂序字串的實質是考察排序的問題,亂序字串經過適當的轉化就會變成乙個排序問題,至於你使用什麼排序方法就會有多種選擇,插入,快速,堆。當然,如果採用建立hash表的方式也是可以的,不過需要書寫好的hash函式。
問題:
題目描述:給出乙個字串陣列s,找到其中所有的亂序字串(anagram)。如果乙個字串是亂序字串,那麼他存在乙個字母集合相同,但順序不同的字串也在s中。
樣例:對於字串陣列 [「lint」,」intl」,」inlt」,」code」],返回 [「lint」,」inlt」,」intl」]
**如下:
#include
#include
#include
#define len 5
#define maxc 128 // 只針對ascii碼表的字元
intcomaparex(const
void *e1, const
void *e2)
void
calculateallstring(char ** a, int len)
}// 索引比較,這裡使用對應的指標值
qsort(x_index_sort, len, sizeof(int*), comaparex);
j = (*(x_index_sort) - x) / maxc;
printf("%s ", a[j]);
for (i=1; iif (comaparex(x_index_sort+i-1, x_index_sort+i) == 0) else
}printf("\n");
free(x);
free(x_index_sort);
}int
main(int argc, char ** argv)
; calculateallstring(a, len);
exit(0);
}
亂序字串
給出乙個字串陣列s,找到其中所有的亂序字串 anagram 如果乙個字串是亂序字串,那麼他存在乙個字母集合相同,但順序不同的字串也在s中。所有的字串都只包含小寫字母 對於字串陣列 lint intl inlt code 返回 lint inlt intl 思路 認為每一組亂序字串都有唯一的相同的 h...
亂序字串
給出乙個字串陣列s,找到其中所有的亂序字串 anagram 如果乙個字串是亂序字串,那麼他存在乙個字母集合相同,但順序不同的字串也在s中。所有的字串都只包含小寫字母 樣例1 輸入 lint intl inlt code 輸出 lint inlt intl 樣例 2 輸入 ab ba cd dc e ...
亂序字串演算法
蠻力法 思路等會睡醒之後寫吧 include string include algorithm include stdio.h include iostream include vector using namespace std bool isanagram string source,strin...