感謝銘哥提供的思路:
找乙個字串有多少不同子串,利用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 分析 因為子串是任意組合,子串的組合方式不定,不能從子串下手,只有從母串下手了。計算子串長度,迴圈從第一位開始擷取母串子串長度的子串,然後迴圈這個字串...