【iv】lcs最長公共子串(連續)
/* [4].lcs 最長公共子串
* const char* longestcommonstring(const char* strleft, const char* strright)
* @author arhaiyun
**/const char* lcs(const char* strleft, const char* strright)
pos = j;
}else}}
else
}prevline.assign(nextline.begin(), nextline.end());
} char *lcs = new char[maxlen + 1];
int startpos = pos - maxlen + 1;
for(int i = 0; i < maxlen; i++)
lcs[maxlen] = '\0';
return lcs;
}
【v】lcs最長公共子串行(可以不連續)
/*[5]. longest common subsequence
* const char* lcsubstring(const char* strleft, const char* strright)
* @author arhaiyun
**/[5].longest common subsequence 最長公共子串行的兩種實現方法(注意同上的區別)
str1: haiyun loves xiaoyan
str2: yun lovess yan
output: yun loves yan
//[1].實現方法一
#include #include #define maxlen 100
void lcslength(char *x, char *y, int m, int n, int c[maxlen], int b[maxlen])
else if(c[i-1][j] >= c[i][j-1])
else}}
}void printlcs(int b[maxlen], char *x, int i, int j)
else if(b[i][j] == 1)
printlcs(b, x, i-1, j);
else
printlcs(b, x, i, j-1);
}int main(int argc, char **argv)
; char y[maxlen] = ;
int b[maxlen][maxlen];
int c[maxlen][maxlen];
int m, n;
m = strlen(x);
n = strlen(y);
lcslength(x, y, m, n, c, b);
printlcs(b, x, m, n);
return 0;
}//[2].lcsubsequence實現方法二
const char* lcsubstring(const char* strleft, const char* strright)
pos = j;
}else}}
else
else
}} prevline.assign(nextline.begin(), nextline.end());
} char *lcs = new char[maxlen + 1];
for(int i = 0, j = 1; i <= pos && j <= maxlen; )
else
}lcs[maxlen] = '\0';
return lcs;
}int main(int argc, char* argv)
【vi】 kmp 部落格演算法解析
#include "stdafx.h"
#include #include #include #include using namespace std;
/*根據定義next[0]=-1,假設next[j]=k, 即p[0...k-1]==p[j-k,j-1]
1)若p[j]==p[k],則有p[0..k]==p[j-k,j],很顯然,next[j+1]=next[j]+1=k+1;
2)若p[j]!=p[k],則可以把其看做模式匹配的問題,即匹配失敗的時候,k值如何移動,顯然k=next[k]。
*/void getnext(char *p, int *next)
else
k = next[k]; }}
int kmpmatch(char *s, char *p)
else
j = next[j];
if(j == strlen(p))
return i - j; }
return -1;
}int main(void)
{ char *s = "haiyun loves xiaoyan";
char *p = "xiaoyan";
cout<
字串專題
created on 2019年12月1日 author hp 擷取字串 str2 我是迪迦奧特曼 str3 str2 5 str4 str2 0 len str2 2 print str3,str4 擷取的字串如果不存在,會出現異常,可以用try.except捕捉異常 try str5 str2 ...
字串專題
給定乙個字串,你的任務是計算這個字串中有多少個回文子串。具有不同開始位置或結束位置的子串,即使是由相同的字元組成,也會被視作不同的子串。示例1 輸入 abc 輸出 3 解釋 三個回文子串 a b c 示例 2 輸入 aaa 輸出 6 解釋 6個回文子串 a a a aa aa aaa 解法 1 動態...
字串專題
1.double ceil double x 求大於 x 的最小的數,即向上取整函式 includeusing namespace std intmain 2.a 65 z 90 a 97 z 122 3.字串刪除 c 從string中刪除所有的某個特定字元 超好 includeusing name...