3.28学习总结

打印 上一主题 下一主题

主题 1710|帖子 1710|积分 5130

完因素割回文串的算法题,难点重要在怎样去分割,靠什么去分割字符串
  1. int a(char arr[]){
  2.     int i,j;
  3.     int len=strlen(arr);
  4.     for(i=0,j=len-1;i<j;i++,j--){
  5.         if(arr[i]!=arr[j]) return 0;
  6.     }
  7.     return 1;
  8. }
  9. char **path;
  10. int pathtop;
  11. char***reasult;
  12. int*ansize;
  13. int count;
  14. void copy(){
  15.     char**tempth=(char**)malloc(sizeof(char*)*pathtop);
  16.     int i;
  17.     for(i=0;i<pathtop;i++){
  18.         tempth[i]=path[i];
  19.     }
  20.     reasult[count]=tempth;
  21.     ansize[count++]=pathtop;
  22. }
  23. char*cutstring(char*str,int startindex,int endindex){
  24.     char*temp=(char*)malloc(sizeof(char)*(endindex-startindex+2));
  25.     int i;
  26.     int index=0;
  27.     for(i=startindex;i<=endindex;i++){
  28.         temp[index++]=str[i];
  29.     }
  30.     temp[index]='\0';
  31.     return temp;
  32. }
  33. void backtracking(char*s,int startindex,int size){
  34.     if(startindex>=size){
  35.       copy();
  36.       return;
  37.     }
  38.     for(int i=startindex;i<size;i++){
  39.         char*temp=cutstring(s,startindex,i);
  40.         if(a(temp)){
  41.             path[pathtop++]=temp;
  42.         }else {
  43.             continue;
  44.         }
  45.         backtracking(s,i+1,size);
  46.         pathtop--;
  47.     }
  48. }
  49. char*** partition(char* s, int* returnSize, int** returnColumnSizes){
  50.              int len=strlen(s);
  51.              char*** partition(char* s, int* returnSize, int** returnColumnSizes);
  52.              path=(char**)malloc(sizeof(char*)*len);
  53.              reasult=(char***)malloc(sizeof(char**)*40000);
  54.              ansize=(int*)malloc(sizeof(int)*40000);
  55.              pathtop=0;
  56.              count=0;
  57.              backtracking(s,0,len);
  58.              *returnSize=count;
  59.              *returnColumnSizes=(int*)malloc(sizeof(int)*(*returnSize));
  60.              for(int i=0;i<*returnSize;i++){
  61.                 (*returnColumnSizes)[i]=ansize[i];
  62.              }
  63.              return reasult;
  64. }
复制代码
继承跟着写Java的拼图小游戏的项目,感觉对Java的使用更清楚了


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

不到断气不罢休

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表