找乙個字串有多少不同子串(trie樹)

2021-09-09 07:11:50 字數 490 閱讀 8158

感謝銘哥提供的思路:

找乙個字串有多少不同子串,利用trie樹性質,即為trie樹上有多少個不同的節點。

**:

#include #include #include #include using namespace std;

char s[100000];

int ans;

//找乙個串不同的子串可用tire樹經過每次插入從i到len長度的子串,看tire樹中新開的節點個數即不同子串個數

struct tire

ans++;

return cnt++;

}void init()

void insert(int k,int len)

now=next[now][s[i]];}}

};tire ac;

int main()

printf("%d\n",ans);

}return 0;

}

子串 求出乙個字串的子串數目

定義 串中任意個連續 的字元組成的子串行稱為該串的子串 空串是所有串的字串,所以當字串長度為 0時,字串為空串。字串長度為0 空串 共1 個 字串長度為1 a,d,e,r,e,e,g,f,b,w 共10 個 字串長度為2 ad,de,er,re,ee,eg,gf,fb,bw 共9 個 字串長度為3 ...

在乙個字串中尋找另外乙個字串

在乙個字串中尋找另外乙個字串 public class text foundit true break test system.out.println foundit?found it didn t find it 該段程式有點難以理解,主要就是if語句的理解,if searchme.charat ...

乙個字串找查的例子

題目 給定一母串和一子串,返回子串的任意排列順序在母串中首次出現的位置,沒有則返回 1。如 母串 qwertyuihgfd,子串 tyui,則輸出4 分析 因為子串是任意組合,子串的組合方式不定,不能從子串下手,只有從母串下手了。計算子串長度,迴圈從第一位開始擷取母串子串長度的子串,然後迴圈這個字串...