xdgj 发表于 2013-1-26 14:29:32

字符串生成“后缀数组”《编程珠玑》

 
#include<iostream>using namespace std;const int N=26;extern int com(const void *a,const void *b);int main(){char *s="Gejun Com on C Come in";if(strlen(s)<=26){    int i=0;char *as={NULL};   while(*s!='\0')   { if(*s!=' ')   as=s;       s++;   }   int num=i;   qsort(as,num,sizeof(char*),com);      for(i=0;i<num;i++)   cout<<as<<endl;// cout<<*(char*)as<<" "<<*(char*)as<<endl;}system("Pause");return 0;}int com(const void *a,const void *b){ //char t1=**(char**)a,t2=**(char**)b;//cout<<t1<<" "<<t2<<" for test"<<endl;return strcmp(*(char**)a,*(char**)b);} 上述代码的作用就是将字符串"Gejun Com on C Come in"转换成它的后缀数组,结果图:
 

C Come inCom on C Come inCome inGejun Com on C Come ine inejun Com on C Come ininjun Com on C Come inm on C Come inme innn C Come inn Com on C Come inom on C Come inome inon C Come inun Com on C Come in请按任意键继续. . .  后缀数组的作用是用来识别字符处的最长重复子字符串!
页: [1]
查看完整版本: 字符串生成“后缀数组”《编程珠玑》