幾種常用字串演算法

2021-07-14 16:59:12 字數 1132 閱讀 2934

去年寫的,已經發霉,出來晾一晾…

模式串p在母串s上的匹配。

#define m 100000

int pre[m], n, m;

void

set(string p)

}int kmp(string s, string p)

}return r;

}

找到乙個自迴圈串的最小表示。

先定義t(i,k)表示乙個以i為起點,長為k的串。

string smallest(string s, int &ans)

}ans = i;

return s.substr(i, n);

}

//也可不調換ij

int smallest(string s)

return min(i, j);

}

長春網路賽1006是求乙個串的最大表示方案。可以逆時針和順時針兩種方式。

複雜度o(n),適合插入與查詢。

void insert(char *s, int l, int t, int x)

if(a[x].son == 0)

int i = a[x].son;

if(a[i].ch > s[t])

int j = i;

while(a[i].ch < s[t] && a[i].next != 0)

if(a[i].ch < s[t])

else

if(a[i].ch > s[t])

insert(s, l, t+1, i);

return;

}void read(int x)

在字典樹上的kmp

struct trie

void init()

void insert(char buf, int x)

end[now] = x;

}void build()

while(!q.empty())}}

int query(char buf)

}return res;

}}ac;

常用字串演算法

一 判斷兩個字串是否包含相同的內容 1.巧用陣列下標實現,把用字元的ascii碼值當作下標,記錄出現的字元,然後對兩字串進行遍歷 判斷s於s2是否相同 param s param s2 return boolean static boolean equals string s,string s2 四...

mysql常用字串 MYSQL常用字串函式寶典

mysql常用字串函式 想更進一步加強自己在查詢語句方面的能力,需要掌握常用函式。字串函式 1 concat s1,s2,sn 將s1,s2,sn串聯成乙個字串。exp root test 14 43 desc t1 field type null key default extra id int ...

常用字串hash演算法

以前學習資料結構中有關hash部分的時候一帶而過,現在真正在實踐中用到的時候才感受到hash的魅力。hdoj1800可作為練習 以下是常用字串hash演算法的簡單對比分析 hash函式 資料1資料2 資料3資料4 資料1分數 資料2分數 資料3分數 資料4分數 平均rshash10 4861 505...