正直找工做面試巔峯時期,有幸在學校能夠聽到July的講座,在時長將近三個小時的演講中,發現對於找工做來講,算法數據結構能夠算是程序員道路的一個考量吧,畢竟中國學計算機的人太多了,只能使用這些方法來淘汰了,可是說到一點,互聯網公司找的是會寫代碼,有思想的程序員,而不是一些公務員,你招的不是那些搞行測的,你是要作技術的,發現今年某些公司,出一些亂七八糟的行測題。有點偏題了!!!ios
July講座中我印象最深入的是KMP算法,之前對KMP算法懵懵懂懂的,今天聽完之後,有了一些全新的認識,不能說懂吧,最起碼代碼能夠本身寫出來了。程序員
#include <iostream> #include <string.h> using namespace std; void getNext(const char *p, int next[]) { int j=-1; next[0]=-1; int n=strlen(p); for(int i=0;i<n-1;) { if(j==-1 || p[i]==p[j]) { i++; j++; next[i]=j; } else j=next[j]; } } int kmpSearch(const char *s,const char *p) { int slen=strlen(s); int plen=strlen(p); int i=0,j=0; int next[plen+1]; getNext(p,next); while(i<slen && j<plen) { if(j==-1 || s[i]==p[j]) { i++; j++; } else j=next[j]; } if(j==plen) return i-j; else return -1; } int main() { const char *s="BBCABCDABABCDABDABDE"; const char *p="ABCDABD"; int index = kmpSearch(s,p); cout << "index = " << index << endl; return 0; }