資料結構-串- BF(樸素)演算法
阿新 • • 發佈:2018-12-10
時間複雜度: O(nm) ;
需求:解決字串主串是否包含子串的問題;
思路:採用雙指標;主串i 字串 j 當i與j相同時 i++,j++,如不同,j=0; i回退上次開始比較的的位置+1 匹配成功返回第一個字元的下標;
class BF{ public static int bf(String str,String sub){ int i=0; int j=0; while(i<str.length()&&j<sub.length()){ if(str.charAt(i)==sub.charAt(j)){ i++; j++; }else{ i=i-j+1; //回退到i上次比較起始位置+1; j=0; } } if(j==sub.length()){ return i-j ; //找到返回下標 } return -1; } }