摘要: java反射 修改靜態(tài)方法的值 setAccessible太無(wú)節(jié)操了 閱讀全文
BF(Brute Force)算法核心思想是:首先S[1]和T[1]比較,若相等,則再比較S[2]和T[2],一直到T[M]為止;若S[1]和T[1]不等,則T向 右移動(dòng)一個(gè)字符的位置,再依次進(jìn)行比較。如果存在k,1≤k≤N,且S[k+1…k+M]=T[1…M],則匹配成功;否則失敗。該算法最壞情況下要進(jìn)行 M*(N-M+1)次比較,時(shí)間復(fù)雜度為O(M*N)
摘要: java Jnotify實(shí)時(shí)的監(jiān)控制定文件夾內(nèi)文件的變動(dòng)信息 閱讀全文
摘要: 網(wǎng)頁(yè)seo優(yōu)化,搜索引擎優(yōu)化 閱讀全文
摘要: java中判斷是否是合法圖片 閱讀全文
摘要: oracle數(shù)據(jù)庫(kù)換系統(tǒng)后恢復(fù)以前oracle數(shù)據(jù)操作方法 閱讀全文
摘要: HashMap源碼解析,存儲(chǔ)實(shí)現(xiàn) 閱讀全文
摘要: 閱讀全文
摘要: 關(guān)于網(wǎng)頁(yè)打開(kāi)新窗口的解決方案,拒絕屏蔽 閱讀全文
摘要: Velocity一些使用心得,常用的一些方法 閱讀全文
摘要: 淘寶SNS社區(qū)招聘,職位名稱(chēng):系統(tǒng)架構(gòu)師,職位名稱(chēng):資深Java工程師,職業(yè)發(fā)展方向.如技術(shù)、業(yè)務(wù)能力卓越,顯示出過(guò)人才能,可專(zhuān)注于技術(shù)方向,提升為系統(tǒng)架構(gòu)師,如輔導(dǎo)、管理能力出色,可提升為T(mén)echLeader。 閱讀全文
摘要: FindBugs及標(biāo)準(zhǔn)模板安裝使用說(shuō)明.大家看看 閱讀全文
摘要: jsp ajax上傳標(biāo)簽原始版本 閱讀全文
摘要: java解析 VCF文件導(dǎo)入導(dǎo)出數(shù)據(jù)庫(kù) 閱讀全文
摘要: 閱讀全文
摘要: 青菜貓lucene3.2性能提高了... 閱讀全文
摘要: JMeter 使用 閱讀全文
摘要: 閱讀全文
摘要: 閱讀全文
BF(Brute Force)算法核心思想是:首先S[1]和T[1]比較,若相等,則再比較S[2]和T[2],一直到T[M]為止;若S[1]和T[1]不等,則T向 右移動(dòng)一個(gè)字符的位置,再依次進(jìn)行比較。如果存在k,1≤k≤N,且S[k+1…k+M]=T[1…M],則匹配成功;否則失敗。該算法最壞情況下要進(jìn)行 M*(N-M+1)次比較,時(shí)間復(fù)雜度為O(M*N)
比如: String a ="123456789" String b= "23"
其實(shí)就是循環(huán) a一個(gè)一個(gè)字符匹配,開(kāi)始a[0]和b[0]匹配,沒(méi)有找到,直接不用找b[1],直接用a[1]和b[0]匹配發(fā)現(xiàn)已經(jīng) 找到,然后繼續(xù)用
其實(shí)就是循環(huán) a一個(gè)一個(gè)字符匹配,開(kāi)始a[0]和b[0]匹配,沒(méi)有找到,直接不用找b[1],直接用a[1]和b[0]匹配發(fā)現(xiàn)已經(jīng) 找到,然后繼續(xù)用
a[2]和b[1]匹配發(fā)現(xiàn)已經(jīng) 找到。前且是b字符串末尾。說(shuō)明已經(jīng)完全找到。返回結(jié)果
JAVA代碼實(shí)現(xiàn)
JAVA代碼實(shí)現(xiàn)
/**
* 匹配字符串,判斷 b字符串在a出現(xiàn)的起始位置,沒(méi)有找到返回(-1)
* @param a
* @param b
* @return
*/
public static int indexOf(String a,String b){
char[] as = a.toCharArray();
char[] bs = b.toCharArray();
int begin = 0;
for(int i = 0 ; i <as.length; i++){
int k = nextStr(as[i], bs,begin);
//說(shuō)明已經(jīng)找到
if( k == begin ){
return i-begin;
}
//說(shuō)明找到一個(gè)字符,需要繼續(xù)找
else if( k >= 0 ){
begin = k;
}else{
//沒(méi)有找到繼續(xù)找
begin = 0;
}
}
return -1;
}
/**
* 匹配字符串,找到字符串位置
* @param c
* @param cs
* @param begin
* @return
*/
public static int nextStr(char c,char[] cs,int begin){
//如果字符匹配和已經(jīng)到了字符尾部青示已經(jīng)全部匹配
if(cs[begin] == c && begin == (cs.length-1) ){
return begin;
//如果字符匹配但沒(méi)有到尾部需要繼續(xù)下移
}else if(cs[begin] == c){
return begin+1;
}
//完全沒(méi)有匹配
else{
return -1;
}
}
然后在main里面調(diào)用indexOf方法看到結(jié)果
* 匹配字符串,判斷 b字符串在a出現(xiàn)的起始位置,沒(méi)有找到返回(-1)
* @param a
* @param b
* @return
*/
public static int indexOf(String a,String b){
char[] as = a.toCharArray();
char[] bs = b.toCharArray();
int begin = 0;
for(int i = 0 ; i <as.length; i++){
int k = nextStr(as[i], bs,begin);
//說(shuō)明已經(jīng)找到
if( k == begin ){
return i-begin;
}
//說(shuō)明找到一個(gè)字符,需要繼續(xù)找
else if( k >= 0 ){
begin = k;
}else{
//沒(méi)有找到繼續(xù)找
begin = 0;
}
}
return -1;
}
/**
* 匹配字符串,找到字符串位置
* @param c
* @param cs
* @param begin
* @return
*/
public static int nextStr(char c,char[] cs,int begin){
//如果字符匹配和已經(jīng)到了字符尾部青示已經(jīng)全部匹配
if(cs[begin] == c && begin == (cs.length-1) ){
return begin;
//如果字符匹配但沒(méi)有到尾部需要繼續(xù)下移
}else if(cs[begin] == c){
return begin+1;
}
//完全沒(méi)有匹配
else{
return -1;
}
}
然后在main里面調(diào)用indexOf方法看到結(jié)果
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
25 | 26 | 27 | 28 | 29 | 30 | 1 | |||
2 | 3 | 4 | 5 | 6 | 7 | 8 | |||
9 | 10 | 11 | 12 | 13 | 14 | 15 | |||
16 | 17 | 18 | 19 | 20 | 21 | 22 | |||
23 | 24 | 25 | 26 | 27 | 28 | 29 | |||
30 | 31 | 1 | 2 | 3 | 4 | 5 |
青菜貓(孫宇)結(jié)交天下朋友,在網(wǎng)上吸取知識(shí)..
常用鏈接
留言簿(16)
隨筆分類(lèi)
隨筆檔案
- 2013年6月 (1)
- 2013年5月 (1)
- 2011年6月 (1)
- 2010年11月 (1)
- 2010年9月 (3)
- 2010年8月 (1)
- 2010年7月 (1)
- 2010年5月 (3)
- 2009年9月 (1)
- 2008年8月 (2)
- 2008年6月 (2)
- 2008年4月 (1)
- 2007年12月 (1)
- 2007年11月 (1)
- 2007年10月 (9)
文章分類(lèi)
搜索
最新評(píng)論

- 1.?re: java反射 修改靜態(tài)方法的值 setAccessible太無(wú)節(jié)操了
-
@江奕銘
寫(xiě)的真受用。見(jiàn)識(shí)了 - --宋大傻
- 2.?re: java反射 修改靜態(tài)方法的值 setAccessible太無(wú)節(jié)操了
- 這文章寫(xiě)的好!
- --江奕銘
- 3.?re: java反射 修改靜態(tài)方法的值 setAccessible太無(wú)節(jié)操了
- 這么些會(huì)個(gè)屁的
- --BBB
- 4.?re: java反射 修改靜態(tài)方法的值 setAccessible太無(wú)節(jié)操了
- jvm 加上安全管理期及相關(guān)策略即可防止。
- --zzy8811
- 5.?re: java解析電話(huà)薄 VCF文件ENCODING=QUOTED-PRINTABLE編碼
-
太感謝了!!! ~~~~(>_<)~~~~
哥已經(jīng)轉(zhuǎn)換出來(lái)了。 - --ingyk