锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 緇忓父鍚埌鏈変漢鍦ㄦ姳鎬ㄨ繖涓璦鍝噷鍝噷涓嶅ソ錛岄偅涓璦鍙堟槸濡備綍鐨勪紭縐銆傚浜庤繖鏍風殑鐗㈤獨錛屾垜鍙槸涓絎戣岃繃銆?/span> 灝辨垜鑰岃█錛岃璦鍙槸宸ュ叿錛屾病鏈夊ソ鍧忎箣鍒嗐傚彧瑕佷綘閲囩敤鐩稿簲鐨勮璦錛屽畬鎴愬搴旂殑宸ヤ綔錛岄偅浣犵殑鐩爣灝卞畬鎴愪簡銆傛垜浠棤闇鎶辨ㄨ繖縐嶈璦鐨勭己鐐癸紝鑰屾槸搴旇鎶辨湁鎺ュ彈鐨勬佸害銆備換浣曡璦鐨勫瓨鍦ㄩ兘鏈夊畠鐨勫悎鐞嗘э紝濡傛灉涓嶅悎鐞嗘槸涓嶄細緇忓彈浣忔椂闂寸殑鑰冮獙鐨勩備笘闂翠箣鐗╅兘鍏鋒湁鍙岄潰鎬э紝鍙槸鐪嬪埄澶氳繕鏄紛澶с傚鏋滀竴涓笢瑗挎槸鍗佸叏鍗佺編鐨勶紝閭f垜姣笉鐘硅鮑鐨勫憡璇変綘錛屼竴縐嶆儏鍐墊槸瀹冧笉瀛樺湪錛屽彟涓縐嶆儏鍐墊槸浣犺繕娌″彂鐜板畠鐨勭己鐐廣?/span> 姣忕璇█閮芥湁鑷繁寰楀ぉ鐙帤鐨勪紭鍔匡紝褰撶劧緙虹偣鍚屾椂浼村瓨銆?span style="font-family: Calibri; ">C璇█鏄綆楁満鐣岀殑甯擱潚钘ゃ?span style="font-family: Calibri; ">C璇█鎵ц鏁堢巼楂橈紝鐢ㄤ簬鍐欏簳灞傜殑椹卞姩閭f槸鍐嶉傚悎涓嶈繃銆傛寚閽堟槸C璇█鐨勭簿鍗庛傝?span style="font-family: Calibri; ">C++鏄緢寮哄ぇ鐨勶紝鍙浣犳槸涓珮鎵嬶紝浣犲嚑涔庡彲浠ュ埄鐢?span style="font-family: Calibri; ">C++瀹屾垚浠諱綍浜嬫儏銆傚綋鐒惰櫄鍑芥暟鏄?span style="font-family: Calibri; ">C++鐨勭簿鍗庛?span style="font-family: Calibri; ">Java鍙栨秷浜嗘寚閽堬紝榪欐槸搴旇鍠滆繕鏄咖銆傚枩鐨勬槸錛屾病鏈?span style="font-family: Calibri; ">C鎴栬?span style="font-family: Calibri; ">C++閭g瀵瑰唴瀛樼箒鐞愮殑鎿嶄綔錛岃屼笖涔熼檷浣庝簡寰堝鑷村懡鎬х殑閿欒鍙戠敓鐨勬鐜囥傚咖鐨勬槸錛屾晥鐜囧ぇ鎵撴姌鎵o紝閲囩敤铏氭嫙鏈虹殑鏂瑰紡浣垮緱Java鏈夎法騫沖彴鐨勭壒鎬э紝蹇呯劧浼氫嬌寰楁晥鐜囬檷浣庛傚彟澶栦竴涓柟闈紝浣犲熷埆浜虹殑涓滆タ浣跨敤錛堝唴瀛橈級錛屾槸涓嶆槸搴旇榪樺洖鍘誨憿錛熶粠榪欎竴鏂歸潰鑰冭檻錛?span style="font-family: Calibri; ">C鎴栬?span style="font-family: Calibri; ">C++鐨勮璁℃濇兂鏇存湁鎰忎箟銆傜粡甯稿叧娉?span style="font-family: Calibri; ">TIOBE涓栫晫緙栫▼璇█鎺掕姒滐紝Java宸茬粡鏈夊緢涔呮帓鍚嶇涓錛屾垜瑙夊緱榪欐牱鐨勬帓鍚嶅彧鏄湅鐪嬭屽凡錛屾棤闇榪囧鐨勪俊濂夈備笅闈㈢湅鐪嬪嚑縐嶄富瑕佽璦鐨勪紭緙虹偣銆?/span> C璇█ C璇█鐨勪紭鐐癸細 1.綆媧佺揣鍑戙佺伒媧繪柟渚?/span> 2.榪愮畻絎︿赴瀵?/span> 3.鏁版嵁緇撴瀯涓板瘜 4. C鏄粨鏋勫紡璇█ 5. C璇硶闄愬埗涓嶅お涓ユ牸錛岀▼搴忚璁¤嚜鐢卞害澶?/span> 6. C璇█鍏佽鐩存帴璁塊棶鐗╃悊鍦板潃錛屽彲浠ョ洿鎺ュ紜歡榪涜鎿嶄綔 7. C璇█紼嬪簭鐢熸垚浠g爜璐ㄩ噺楂橈紝紼嬪簭鎵ц鏁堢巼楂?/span> 8. C璇█閫傜敤鑼冨洿澶э紝鍙Щ妞嶆уソ 9. C璇█鏈変竴涓獊鍑虹殑浼樼偣灝辨槸閫傚悎浜庡縐嶆搷浣滅郴緇?span style="font-family: Calibri; ">,濡?span style="font-family: Calibri; ">DOS銆?span style="font-family: Calibri; ">UNIX,涔熼傜敤浜庡縐嶆満鍨?/span> 10.鏈夋晥鍦板皢涓涓緝澶嶆潅鐨勭▼搴忕郴緇熻璁′換鍔″垎瑙f垚璁稿鏄撲簬鎺у埗鍜屽鐞嗙殑瀛愪換鍔★紝渚夸簬寮鍙戝拰緇存姢 C璇█鐨勭己鐐癸細 1. C璇█鐨勭己鐐逛富瑕佹槸琛ㄧ幇鍦ㄦ暟鎹殑灝佽鎬т笂錛岃繖涓鐐逛嬌寰?span style="font-family: Calibri; ">C鍦ㄦ暟鎹殑瀹夊叏鎬т笂鍋氱殑鏈夊緢澶х己闄鳳紝榪欎篃鏄?span style="font-family: Calibri; ">C鍜?span style="font-family: Calibri; ">C++鐨勪竴澶у尯鍒?/span> 2. C璇█鐨勮娉曢檺鍒朵笉澶弗鏍鹼紝瀵瑰彉閲忕殑綾誨瀷綰︽潫涓嶄弗鏍鹼紝褰卞搷紼嬪簭鐨勫畨鍏ㄦэ紝瀵規暟緇勪笅鏍囪秺鐣屼笉浣滄鏌ョ瓑銆備粠搴旂敤鐨勮搴︼紝C璇█姣斿叾浠栭珮綰ц璦杈冮毦鎺屾彙銆?/span> 3.鍙噸鐢ㄦу樊 4.鏁版嵁瀹夊叏鎬у樊 5.闅句互寮鍙戝ぇ鍨嬭蔣浠跺拰鍥懼艦鐣岄潰鐨勫簲鐢ㄨ蔣浠?/span> 6.鎶婃暟鎹拰澶勭悊鏁版嵁鐨勮繃紼嬪垎紱諱負鐩鎬簰鐙珛鐨勫疄浣?/span> 7.褰撴暟鎹粨鏋勬敼鍙樻椂錛屾墍鏈夌浉鍏崇殑澶勭悊榪囩▼閮借榪涜鐩稿簲鐨勪慨鏀?/span> 8.姣忎竴縐嶇浉瀵逛簬鑰侀棶棰樼殑鏂版柟娉曢兘瑕佸甫鏉ラ澶栫殑寮閿 9.鍥懼艦鐢ㄦ埛鐣岄潰鐨勫簲鐢ㄧ▼搴忥紝寰堥毦鐢ㄨ繃紼嬫潵鎻忚堪鍜屽疄鐜幫紝寮鍙戝拰緇存姢涔熼兘寰堝洶闅?/span> C++ C++浼樼偣錛?/span> 1.鍙墿灞曟у己 2.楂樻晥 綆媧?蹇?/span> 3.鍙Щ妞嶆?/span> 4.闈㈠悜瀵硅薄鐨勭壒鎬?/span> 5.寮哄ぇ鑰岀伒媧葷殑琛ㄨ揪鑳藉姏鍜屼笉杈撲簬C鐨勬晥鐜?/span> 6.鏀寔紜歡寮鍙?br />7.紼嬪簭妯″潡闂寸殑鍏崇郴鏇翠負綆鍗曪紝紼嬪簭妯″潡鐨勭嫭绔嬫с佹暟鎹殑瀹夊叏鎬у氨鏈変簡鑹ソ鐨勪繚闅?/span> 8.閫氳繃緇ф壙涓庡鎬佹э紝鍙互澶уぇ鎻愰珮紼嬪簭鐨勫彲閲嶇敤鎬э紝浣垮緱杞歡鐨勫紑鍙戝拰緇存姢閮芥洿涓烘柟渚?/span> C++緙虹偣錛?/span> 1.姣旇緝搴曞眰錛屾槗鐢ㄦт笉鏄緢濂?/span> 2.澶氶噸緇ф壙鍜屽弸鍏冩満鍒?/span> 3.鏍囧噯搴撴兜鐩栬寖鍥翠笉瓚?br />4.寮鍙戝懆鏈熼暱 5.闈炲茍琛?/span> 6.鎺屾彙鏈夐毦搴?/span> 7.綺掑害灝佽涓嶅 Java Java鐨勪紭鐐癸細 1.綆鍗曟?/span> 2.闈㈠悜瀵硅薄鎬э紙闈㈠悜瀵硅薄鐨勭▼搴﹀彲浠ヨ揪鍒?5%錛?/span> 3.鍋ュ.鎬?/span> 4.璺ㄥ鉤鍙版?/span> 5.楂樻ц兘錛堣嚜鍔ㄥ瀮鍦懼洖鏀舵満鍒訛級 6.澶氱嚎紼?/span> 7.鍔ㄦ佹?/span> 8.瀹夊叏鎬?/span> Java鐨勭己鐐癸細 1.鏁堢巼浣庯紙姣嬪焊緗枒錛?/span> 2.璺ㄥ鉤鍙版槸瀹冩渶澶х殑浼樼偣涔熸槸鏈澶х殑緙虹偣 3.澶嶆潅鎬э紙鍋氫竴涓」鐩渶瑕佸緢澶氱殑鐭ヨ瘑錛屾秹鍙婇潰騫匡級 寰堝鏃跺欙紝涓縐嶈璦鐨勪紭鐐瑰緢鍙兘鏄畠鐨勭己鐐癸紝緙虹偣鍙堝彲鑳芥槸瀹冪殑浼樼偣銆傝繖涓昏鐪嬩綘鏄粠鍝柟闈㈠幓鑰冭檻銆傝繖灝卞嵃璇佷簡閭e彞璇濓紝鍑′簨娌℃湁蹇呯劧銆?/span> 涓嶇鏄摢縐嶈璦錛屽氨鍍忔枃绔犲紑澶存墍璦錛屽彧瑕佷綘閲囩敤浠栬揪鍒頒綘鎯寵鐨勶紝閭e氨鎴愬姛浜嗐傛棤闇榪囧鍦ㄦ剰瀹冪殑緙虹偣錛屾洿鏃犻渶璧炴壃瀹冪殑浼樼偣銆傛墍浠ョ綉涓婇偅浜涘叧浜庡摢縐嶈璦鏇村ソ鐨勫彛姘翠粭錛屾垜鍙兘璇磋繖鏍風殑浜夋枟姣棤鎰忎箟銆?/span> 璇█鍙槸宸ュ叿錛屾病鏈夊ソ鍧忎箣鍒?/span> 緗戜笂鍏充簬姝ょ被鐨勮璁洪潪甯稿錛屽彂鐜板浜庤闂鐨勭悊瑙e悇鏈夊悇鐨勮娉曪紝鑰屽悇涓娉曚腑鍙堢浉鍘葷敋榪溿傞氳繃嫻忚榪欎簺璁ㄨ浠ュ強瀵廣奜'Reilly - UML 2.0 In A Nutshell (2007)銆嬬殑鍙傝冿紝鍙戣〃涓涓嬭嚜宸辯殑鐪嬫硶 綾婚棿鍏崇郴鏈夊緢澶氱錛屽湪澶х殑綾誨埆涓婂彲浠ュ垎涓轟袱縐嶏細綰靛悜鍏崇郴銆佹í鍚戝叧緋匯?/p> 綰靛悜鍏崇郴灝辨槸緇ф壙鍏崇郴錛屽畠鐨勬蹇甸潪甯告槑紜紝涔熸垚涓篛O鐨勪笁涓噸瑕佺壒寰佷箣涓錛岃繖閲屼笉榪囧鐨勮璁恒?/p> 妯悜鍏崇郴杈冧負寰錛屾寜鐓ML鐨勫緩璁ぇ浣撲笂鍙互鍒嗕負鍥涚錛?/p> 瀹冧滑鐨勫己寮卞叧緋繪槸娌℃湁寮傝鐨勶細渚濊禆 < 鍏寵仈 < 鑱氬悎 < 緇勫悎 鐒惰屽畠浠洓涓箣闂寸殑宸埆鍗村張涓嶉偅涔堝ソ鎷挎崗錛岄渶瑕佸ソ濂戒綋浼氥?/p>
]]>紼嬪簭鍛樼殑濂嬫枟鍙詫紙涓錛?#8212;—嫻呰皥鍑犵涓昏緙栫▼璇█
]]>
{
public void breath()
{
Air freshAir = new Air();
freshAir.releasePower();
}
public static void main()
{
Human me = new Human();
while(true)
{
me.breath();
}
}
}
class Air
{
public void releasePower()
{
//do sth.
}
}
{
ArrayList friends = new ArrayList();
public void makeFriend(Human human)
{
friends.add(human);
}
public static void main()
{
Human me = new Human();
while(true)
{
me.makeFriend(mySchool.getStudent());
}
}
}
{
Home myHome;
public void goHome()
{
//鍦ㄥ洖瀹剁殑璺笂
myHome.openDoor();
//鐪嬬數瑙?br /> }
public static void main()
{
Human me = new Human();
while(true)
{
//涓婂
//鍚冮キ
me.goHome();
}
}
}
{
Heart myHeart = new Heart();
public static void main()
{
Human me = new Human();
while(true)
{
myHeart.beat();
}
}
}
]]>
]]>
鐨勬暟鐩紝鍦∟LP涓簲鐢ㄦ瘮杈冨箍娉涳紝濡備竴浜涜瘎嫻嬫柟娉曚腑灝辯敤鍒頒簡錛坵er,mWer絳夛級錛屽悓鏃朵篃甯哥敤鏉ヨ綆椾綘瀵瑰師鏂囨湰鎵浣滅殑鏀瑰姩鏁般傜紪杈戣窛紱葷殑綆楁硶鏄鍏堢敱淇勫浗縐戝瀹禠evenshtein鎻愬嚭鐨勶紝鏁呭張鍙獿evenshtein Distance銆?br />Levenshtein Distance綆楁硶鍙互鐪嬩綔鍔ㄦ佽鍒掋傚畠鐨勬濊礬灝辨槸浠庝袱涓瓧絎︿覆鐨勫乏杈瑰紑濮嬫瘮杈?璁板綍宸茬粡姣旇緝榪囩殑瀛愪覆鐩鎬技搴?瀹為檯涓婂彨鍋氳窛紱?,鐒跺悗榪涗竴姝ュ緱鍒頒笅涓涓?瀛楃浣嶇疆鏃剁殑鐩鎬技搴︺?鐢ㄤ笅闈㈢殑渚嬪瓙: GUMBO鍜孏AMBOL銆傚綋綆楀埌鐭╅樀D[3,3]浣嶇疆鏃?涔熷氨鏄綋姣旇緝鍒癎UM鍜孏AM鏃?瑕佷粠宸茬粡姣旇緝榪囩殑3瀵瑰瓙涓睪U-GAM, GUM-GA鍜孏U-GA涔嬩腑閫変竴涓樊鍒渶灝忕殑鏉ュ綋瀹冪殑鍊? 鎵浠ヨ浠庡乏涓婂埌鍙充笅鏋勯犵煩闃點?br />緙栬緫璺濈鐨勪吉綆楁硶錛?br />鏁存暟 Levenshtein璺濈(瀛楃 str1[1..lenStr1], 瀛楃 str2[1..lenStr2])
瀹e憡 int d[0..lenStr1, 0..lenStr2]
瀹e憡 int i, j, cost
瀵逛簬 i 絳変簬 鐢?0 鑷?lenStr1
d[i, 0] := i
瀵逛簬 j 絳変簬 鐢?0 鑷?lenStr2
d[0, j] := j
瀵逛簬 i 絳変簬 鐢?1 鑷?lenStr1
瀵逛簬 j 絳変簬 鐢?1 鑷?lenStr2
鑻?str1[i] = str2[j] 鍒?cost := 0
鍚﹀垯 cost := 1
d[i, j] := 鏈灝忓?
d[i-1, j ] + 1, // 鍒犻櫎
d[i , j-1] + 1, // 鎻掑叆
d[i-1, j-1] + cost // 鏇挎崲
)
榪斿洖 d[lenStr1, lenStr2]
double Minimum(double a, double b, double c)
{
double mi;
mi = a;
if (b < mi) {
mi = b;
}
if (c < mi) {
mi = c;
}
return mi;
}
int* GetCellPointer(int *pOrigin, int col, int row, int nCols)
{
return pOrigin + col + (row * (nCols + 1));
}
int GetAt(int *pOrigin, int col, int row, int nCols)
{
int *pCell;
pCell = GetCellPointer (pOrigin, col, row, nCols);
return *pCell;
}
void PutAt(int *pOrigin, int col, int row, int nCols, double x)
{
int *pCell;
pCell = GetCellPointer (pOrigin, col, row, nCols);
*pCell = x;
}
//緙栬緫璺濈
LD(const char *s, const char *t)
{
int *d; // pointer to matrix
int n; // length of s
int m; // length of t
int i; // iterates through s
int j; // iterates through t
char s_i1; // ith character of s
char s_i2; // ith character of s
char t_j1; // jth character of t
char t_j2; // jth character of t
int *cost; // cost浠d環鐭╅樀
int result; // result
int cell; // contents of target cell
int above; // contents of cell immediately above
int left; // contents of cell immediately to left
int diag; // contents of cell immediately above and to left
int sz; // number of cells in matrix
// Step 1
n = strlen (s);
m = strlen (t);
if (n == 0)
{
return m;
}
if (m == 0)
{
return n;
}
sz = (n+1) * (m+1) * sizeof (int);
d = (int *) malloc (sz);
cost = (int *) malloc (sz);
// Step 2
for (i = 0; i <= n; i++)
{
PutAt (d, i, 0, n, i);
}
for (j = 0; j <= m; j++)
{
PutAt (d, 0, j, n, j);
}
for (int g=0;g<=m;g++)//鎶婁唬浠瘋窛紱葷煩闃靛叏閮ㄥ垵濮嬪寲涓哄悓涓涓鹼紝浠ュ悗鍙牴鎹鍊煎垽鏂浉搴旂殑鏂規牸鏄惁琚祴榪囧?br /> {
for(int h=0;h<=n;h++)
{
PutAt(cost,h,g,n,2);
}
}
// Step 3
for (i = 1; i <= n; i++)
{
s_i1 = s[i-1];
s_i2 = s[i];
bool sbd=false;
bool tbd=false;
if(s_i1>=' '&&s_i1<='@'||s_i1>='A'&&s_i1<='~' )
{//s涓烘爣鐐圭鍙鋒垨鍏朵粬闈炰腑鏂囩鍙峰拰鏁板瓧
sbd=true;
}
// Step 4
for (j = 1; j <= m; j++)
{
tbd=false;
t_j1 = t[j-1];
t_j2 = t[j];
// Step 5
if(t_j1>=' '&&t_j1<='@'||t_j1>='A'&&t_j1<='~' )
{//t涔熶負鏍囩偣絎﹀彿
tbd=true;
}
if(!sbd)
{//s涓烘眽瀛?br /> if(!tbd)
{//t涔熶負姹夊瓧
if (s_i1 == t_j1&&s_i2 == t_j2)
{
bool tt=false;
int temp=GetAt(cost,i,j,n);
if(temp==2)
{
PutAt(cost,i,j,n,0);
tt=true;
}
if(tt)
{//鍥犱負st鍏ㄥ競姹夊瓧錛屾墍浠ユ妸浠d環鐭╅樀浠栫浉閭葷殑鏈祴榪囧肩殑涓変釜鏍艱祴鍊?br /> int temp1=GetAt(cost,i+1,j,n);
if(temp1==2)
{
PutAt(cost,i+1,j,n,0);
}
int temp2=GetAt(cost,i,j+1,n);
if(temp2==2)
{
PutAt(cost,i,j+1,n,0);
}
int temp3=GetAt(cost,i+1,j+1,n);
if(temp3==2)
{
PutAt(cost,i+1,j+1,n,0);
}
}
}
else
{
bool tt=false;
int temp=GetAt(cost,i,j,n);
if(temp==2)
{
PutAt(cost,i,j,n,1);
tt=true;
}
if(tt)
{
int temp1=GetAt(cost,i+1,j,n);
if(temp1==2)
{
PutAt(cost,i+1,j,n,1);
}
int temp2=GetAt(cost,i,j+1,n);
if(temp2==2)
{
PutAt(cost,i,j+1,n,1);
}
int temp3=GetAt(cost,i+1,j+1,n);
if(temp3==2)
{
PutAt(cost,i+1,j+1,n,1);
}
}
}
}
else
{//t涓虹鍙?br /> bool tt=false;
int temp=GetAt(cost,i,j,n);
if(temp==2)
{
PutAt(cost,i,j,n,1);
tt=true;
}
if(tt)
{
int temp1=GetAt(cost,i+1,j,n);
if(temp1==2)
{
PutAt(cost,i+1,j,n,1);
}
}
}
}
else
{//s涓虹鍙?br /> if(!tbd)
{//t涓烘眽瀛?nbsp;
bool tt=false;
int temp=GetAt(cost,i,j,n);
if(temp==2)
{
PutAt(cost,i,j,n,1);
tt=true;
}
if(tt)
{
int temp1=GetAt(cost,i,j+1,n);
if(temp1==2)
{
PutAt(cost,i,j+1,n,1);
}
}
}
else
{
if(s_i1==t_j1)
{
int temp=GetAt(cost,i,j,n);
if(temp==2)
{
PutAt(cost,i,j,n,0);
}
}
else
{
int temp=GetAt(cost,i,j,n);
if(temp==2)
{
PutAt(cost,i,j,n,1);
}
}
}
}
// Step 6
above = GetAt (d,i-1,j, n);
left = GetAt (d,i, j-1, n);
diag = GetAt (d, i-1,j-1, n);
int curcost=GetAt(cost,i,j,n);
cell = Minimum (above + 1, left + 1, diag + curcost);
PutAt (d, i, j, n, cell);
}
}
// Step 7
result = GetAt (d, n, m, n);
free (d);
return result;
}
2錛庢渶闀垮叕鍏卞瓙涓?(LCS)
LCS闂灝辨槸姹備袱涓瓧絎︿覆鏈闀垮叕鍏卞瓙涓茬殑闂銆傝В娉曞氨鏄敤涓涓煩闃墊潵璁板綍涓や釜瀛楃
涓蹭腑鎵鏈変綅緗殑涓や釜瀛楃涔嬮棿鐨勫尮閰嶆儏鍐碉紝鑻ユ槸鍖歸厤鍒欎負1錛屽惁鍒欎負0銆傜劧鍚庢眰鍑哄瑙掔嚎鏈闀跨殑1搴忓垪錛屽叾瀵瑰簲鐨勪綅緗氨鏄渶闀垮尮閰嶅瓙涓茬殑浣嶇疆.
涓嬮潰鏄瓧絎︿覆21232523311324鍜屽瓧絎︿覆312123223445鐨勫尮閰嶇煩闃碉紝鍓嶈呬負X鏂瑰悜鐨勶紝
鍚庤呬負Y鏂瑰悜鐨勩備笉闅炬壘鍒幫紝綰㈣壊閮ㄥ垎鏄渶闀跨殑鍖歸厤瀛愪覆銆傞氳繃鏌ユ壘浣嶇疆鎴戜滑寰楀埌鏈闀跨殑鍖歸厤瀛愪覆涓猴細21232
0 0 0 1 0 0 0 1 1 0 0 1 0 0 0
銆銆0 1 0 0 0 0 0 0 0 1 1 0 0 0 0
銆銆1 0 1 0 1 0 1 0 0 0 0 0 1 0 0
銆銆0 1 0 0 0 0 0 0 0 1 1 0 0 0 0
銆銆1 0 1 0 1 0 1 0 0 0 0 0 1 0 0
銆銆0 0 0 1 0 0 0 1 1 0 0 1 0 0 0
銆銆1 0 1 0 1 0 1 0 0 0 0 0 1 0 0
銆銆1 0 1 0 1 0 1 0 0 0 0 0 1 0 0
銆銆0 0 0 1 0 0 0 1 1 0 0 1 0 0 0
銆銆0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
銆銆0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
銆銆0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
銆銆0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
浣嗘槸鍦?鍜?鐨勭煩闃典腑鎵炬渶闀跨殑1瀵硅綰垮簭鍒楀張瑕佽姳鍘諱竴瀹氱殑鏃墮棿銆傞氳繃鏀硅繘鐭╅樀鐨勭敓鎴愭柟寮忓拰璁劇疆鏍囪鍙橀噺錛屽彲浠ョ渷鍘昏繖閮ㄥ垎鏃墮棿銆備笅闈㈡槸鏂扮殑鐭╅樀鐢熸垚鏂瑰紡錛?br /> 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0
銆銆0 1 0 0 0 0 0 0 0 2 1 0 0 0 0
銆銆1 0 2 0 1 0 1 0 0 0 0 0 1 0 0
銆銆0 2 0 0 0 0 0 0 0 1 1 0 0 0 0
銆銆1 0 3 0 1 0 1 0 0 0 0 0 1 0 0
銆銆0 0 0 4 0 0 0 2 1 0 0 1 0 0 0
銆銆1 0 1 0 5 0 1 0 0 0 0 0 2 0 0
銆銆1 0 1 0 1 0 1 0 0 0 0 0 1 0 0
銆銆0 0 0 2 0 0 0 2 1 0 0 1 0 0 0
銆銆0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
銆銆0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
銆銆0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
銆銆0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
褰?瀛楃鍖歸厤鐨勬椂鍊欙紝鎴戜滑騫朵笉鏄畝鍗曠殑緇欑浉搴斿厓绱犺祴涓?錛岃屾槸璧嬩笂鍏跺乏涓婅鍏冪礌鐨勫煎姞涓銆傛垜浠敤涓や釜鏍囪鍙橀噺鏉ユ爣璁扮煩闃典腑鍊兼渶澶х殑鍏冪礌鐨勪綅緗紝鍦ㄧ煩闃電敓鎴愮殑榪?紼嬩腑鏉ュ垽鏂綋鍓嶇敓鎴愮殑鍏冪礌鐨勫兼槸涓嶆槸鏈澶х殑錛屾嵁姝ゆ潵鏀瑰彉鏍囪鍙橀噺鐨勫鹼紝閭d箞鍒扮煩闃靛畬鎴愮殑鏃跺欙紝鏈闀垮尮閰嶅瓙涓茬殑浣嶇疆鍜岄暱搴﹀氨宸茬粡鍑烘潵浜嗐?/p>
//鏈闀垮叕鍏卞瓙涓?br />char* LCS(char*left,char* right){
int lenLeft,lenRight;
lenLeft = strlen(left);
lenRight = strlen(right);
int *c = new int[lenRight];
int start,end,len;
end = len = 0;
for(int i = 0; i < lenLeft; i++){
for(int j = lenRight-1; j >= 0; j--){
if(left[i] == right[j]){
if(i == 0 || j == 0)
c[j] = 1;
else
c[j] = c[j-1]+1;
}
else
c[j] = 0;
if(c[j] > len){
len = c[j];
end = j;
}
}
}
char *p = new char[len+1];
start = end - len + 1;
for(i = start; i <= end; i++)
p[i - start] = right[i];
p[len] = '/0';
return p;
}
3. 浣欏雞瀹氱悊 (鍚戦噺絀洪棿綆楁硶)
浣欏雞瀹氱悊鍙よ佽屽箍娉涚殑鏁板姒傚康錛屽湪鍚勪釜瀛︾鍙婂疄璺典腑閮藉緱鍒頒簡澶ч噺鐨勫簲鐢紝榪欓噷綆鍗曠殑浠嬬粛涓嬪叾鍦ㄥ垽鏂袱涓瓧絎︿覆鐩鎬技搴︾殑搴旂敤銆?br />鍦ㄤ綑寮﹀畾鐞嗕腑鍩烘湰鐨勫叕寮忎負錛?/p>
鍋囧瀛楃涓瞫1涓巗2錛屾瘮杈冧袱涓瓧絎︿覆鐨勭浉浼煎害錛宻im(s1,s2)錛屽亣璁緎1,s2涓惈鏈塶涓笉鍚岀殑瀛楃錛屽叾鍒嗗埆涓篶1,c2,...cn錛屽垽 鏂瓧絎︿覆鐨勭浉浼煎害杞崲涓轟袱涓瓧絎︿覆瀵瑰簲鐨勫悜閲弙1,v2涔嬮棿澶硅澶у皬鐨勫垽鏂紝浣欏雞鍊艱秺澶у叾鍚戦噺涔嬮棿鐨勫す瑙掕秺灝忥紝s1涓嶴2鐨勭浉浼煎害瓚婂ぇ銆?br />鍚戦噺絀洪棿綆楁硶鐨勪粙緇嶏細
鍦?鍚戦噺絀洪棿妯″瀷涓紝鏂囨湰娉涙寚鍚勭鏈哄櫒鍙鐨勮褰曘傜敤D錛圖ocument錛夎〃紺猴紝鐗瑰緛欏癸紙Term錛岀敤t琛ㄧず錛夋槸鎸囧嚭鐜板湪鏂囨。D涓笖鑳藉浠h〃璇ユ枃妗e唴瀹圭殑鍩?鏈璦鍗曚綅錛屼富瑕佹槸鐢辮瘝鎴栬呯煭璇瀯鎴愶紝鏂囨湰鍙互鐢ㄧ壒寰侀」闆嗚〃紺轟負D(T1錛孴2錛?#8230;錛孴n)錛屽叾涓璗k鏄壒寰侀」錛?<=k<=N銆備緥濡備竴綃囨枃 妗d腑鏈塧銆乥銆乧銆乨鍥涗釜鐗瑰緛欏癸紝閭d箞榪欑瘒鏂囨。灝卞彲浠ヨ〃紺轟負D(a錛宐錛宑錛宒)銆傚鍚湁n涓壒寰侀」鐨勬枃鏈岃█錛岄氬父浼氱粰姣忎釜鐗瑰緛欏硅祴浜堜竴瀹氱殑鏉冮噸琛ㄧず鍏?閲嶈紼嬪害銆傚嵆D錛滵(T1錛學1錛汿2錛學2錛?#8230;錛孴n錛學n)錛岀畝璁頒負D錛滵(W1錛學2錛?#8230;錛學n)錛屾垜浠妸瀹冨彨鍋氭枃鏈珼鐨勫悜閲忚〃紺恒傚叾涓璚k鏄疶k 鐨勬潈閲嶏紝1<=k<=N銆傚湪涓婇潰閭d釜渚嬪瓙涓紝鍋囪a銆乥銆乧銆乨鐨勬潈閲嶅垎鍒負30錛?0錛?0錛?0錛岄偅涔堣鏂囨湰鐨勫悜閲忚〃紺轟負 D(30錛?0錛?0錛?0)銆傚湪鍚戦噺絀洪棿妯″瀷涓紝涓や釜鏂囨湰D1鍜孌2涔嬮棿鐨勫唴瀹圭浉鍏沖害Sim(D1錛孌2)甯哥敤鍚戦噺涔嬮棿澶硅鐨勪綑寮﹀艱〃紺猴紝鍏紡涓猴細
鍏朵腑錛學1k銆乄2k鍒嗗埆琛ㄧず鏂囨湰D1鍜孌2絎琄涓壒寰侀」鐨勬潈鍊鹼紝1<=k<=N銆傛垜浠彲浠ュ埄鐢ㄧ被浼肩殑鏂規硶鏉ヨ綆椾袱涓瓧絎︿覆鐨勭浉鍏沖害銆?nbsp;
榪欎釜綆楁硶緗戜笂娌℃壘鍒幫紝铏界劧鎴戝啓榪囷紝浣嗘槸娌′粈涔堥氱敤鎬э紝灝變笉璐村嚭鏉ャ傚緢綆鍗曠殑錛屾湁鍏磋叮鐨勫彲浠ヨ嚜宸卞啓涓涓?/p>
(1)鎵鏈夋暟鎹兘搴旇闅愯棌鍦ㄦ墍鍦ㄧ殑綾葷殑鍐呴儴銆?/span>
(2)綾葷殑浣跨敤鑰呭繀欏諱緷璧栫被鐨勫叡鏈夋帴鍙o紝浣嗙被涓嶈兘渚濊禆瀹冪殑浣跨敤鑰呫?/span>
(3)灝介噺鍑忓皯綾葷殑鍗忚涓殑娑堟伅銆?/span>
(4)瀹炵幇鎵鏈夌被閮界悊瑙g殑鏈鍩烘湰鍏湁鎺ュ彛[渚嬪錛屾嫹璐濇搷浣?娣辨嫹璐濆拰嫻呮嫹璐?銆佺浉絳夋у垽鏂佹紜緭鍑哄唴瀹廣佷粠ASCII鎻忚堪瑙f瀽絳夌瓑]銆?/span>
(5)涓嶈鎶婂疄鐜扮粏鑺?渚嬪鏀劇疆鍏辯敤浠g爜鐨勭鏈夊嚱鏁?鏀懼埌綾葷殑鍏湁鎺ュ彛涓傚鏋滅被鐨勪袱涓柟娉曟湁涓孌靛叕鍏變唬鐮侊紝閭d箞灝卞彲浠ュ垱寤轟竴涓槻姝㈣繖浜涘叕鍏變唬鐮佺殑縐佹湁鍑芥暟銆?/span>
(6)涓嶈浠ョ敤鎴鋒棤娉曚嬌鐢ㄦ垨涓嶆劅鍏磋叮鐨勪笢瑗挎壈涔辯被鐨勫叕鏈夋帴鍙c?/span>
(7)綾諱箣闂村簲璇ラ浂鑰﹀悎錛屾垨鑰呭彧鏈夊鍑鴻﹀悎鍏崇郴銆備篃鍗籌紝涓涓被瑕佷箞鍚屽彟涓涓被姣棤鍏崇郴錛岃涔堝彧浣跨敤鍙︿竴涓被鐨勫叕鏈夋帴鍙d腑鐨勬搷浣溿?/span>
(8)綾誨簲璇ュ彧琛ㄧず涓涓叧閿娊璞°傚寘涓殑鎵鏈夌被瀵逛簬鍚屼竴綾繪ц川鐨勫彉鍖栧簲璇ユ槸鍏卞悓灝侀棴鐨勩備竴涓彉鍖栬嫢瀵逛竴涓寘褰卞搷錛屽垯灝嗗鍖呬腑鐨勬墍鏈夌被浜х敓褰卞搷錛岃屽鍏朵粬鐨勫寘涓嶉犳垚浠諱綍褰卞搷銆?/span>
(9)鎶婄浉鍏崇殑鏁版嵁鍜岃涓洪泦涓斁緗傝璁¤呭簲褰撶暀鎰忛偅浜涢氳繃get涔嬬被鎿嶄綔浠庡埆鐨勫璞′腑鑾峰彇鏁版嵁鐨勫璞°傝繖縐嶇被鍨嬬殑琛屼負鏆楃ず鐫榪欐潯緇忛獙鍘熷垯琚繚鍙嶄簡銆?/span>
(10)鎶婁笉鐩稿叧鐨勪俊鎭斁鍦ㄥ彟涓涓被涓?涔熷嵆錛氫簰涓嶆矡閫氱殑琛屼負)銆傛湞鐫紼沖畾鐨勬柟鍚戣繘琛屼緷璧栥?/span>
(11)紜繚浣犱負涔嬪緩妯$殑鎶借薄姒傚康鏄被錛岃屼笉鍙槸瀵硅薄鎵紨鐨勮鑹層?/span>
(12)鍦ㄦ按騫蟲柟鍚戜笂灝藉彲鑳界粺涓鍦板垎甯冪郴緇熷姛鑳斤紝涔熷嵆錛氭寜鐓ц璁★紝欏跺眰綾誨簲褰撶粺涓鍦板叡浜伐浣溿?/span>
(13)鍦ㄤ綘鐨勭郴緇熶腑涓嶈鍒涘緩鍏ㄨ兘綾?瀵硅薄銆傚鍚嶅瓧鍖呭惈Driver銆丮anager銆丼ystem銆丼usystem鐨勭被瑕佺壒鍒鍔犲皬蹇冦傝鍒掍竴涓帴鍙h屼笉鏄疄鐜頒竴涓帴鍙c?/span>
(14)瀵瑰叕鍏辨帴鍙d腑瀹氫箟浜嗗ぇ閲忚闂柟娉曠殑綾誨鍔犲皬蹇冦傚ぇ閲忚闂柟娉曟剰鍛崇潃鐩稿叧鏁版嵁鍜岃涓烘病鏈夐泦涓瓨鏀俱?/span>
(15)瀵瑰寘鍚お澶氫簰涓嶆矡閫氱殑琛屼負鐨勭被澶氬姞灝忓績銆傝繖涓棶棰樼殑鍙︿竴琛ㄧ幇鏄湪浣犵殑搴旂敤紼嬪簭涓殑綾葷殑鍏湁鎺ュ彛涓垱寤轟簡寰堝鐨刧et鍜宻et鍑芥暟銆?/span>
(16)鍦ㄧ敱鍚岀敤鎴風晫闈氦浜掔殑闈㈠悜瀵硅薄妯″瀷鏋勬垚鐨勫簲鐢ㄧ▼搴忎腑錛屾ā鍨嬩笉搴旇渚濊禆浜庣晫闈紝鐣岄潰鍒欏簲褰撲緷璧栦簬妯″瀷銆?/span>
(17)灝藉彲鑳藉湴鎸夌収鐜板疄涓栫晫寤烘ā(鎴戜滑甯稿父涓轟簡閬靛畧緋葷粺鍔熻兘鍒嗗竷鍘熷垯銆侀伩鍏嶅叏鑳界被鍘熷垯浠ュ強闆嗕腑鏀劇疆鐩稿叧鏁版嵁鍜岃涓虹殑鍘熷垯鑰岃繚鑳岃繖鏉″師鍒? 銆?/span>
(18)浠庝綘鐨勮璁′腑鍘婚櫎涓嶉渶瑕佺殑綾匯備竴鑸潵璇達紝鎴戜滑浼氭妸榪欎釜綾婚檷綰ф垚涓涓睘鎬с?/span>
(19)鍘婚櫎緋葷粺澶栫殑綾匯傜郴緇熷鐨勭被鐨勭壒鐐規槸錛屾娊璞″湴鐪嬪畠浠彧寰緋葷粺棰嗗煙鍙戦佹秷鎭絾騫朵笉鎺ュ彈緋葷粺棰嗗煙鍐呭叾浠栫被鍙戝嚭鐨勬秷鎭?/span>
(20)涓嶈鎶婃搷浣滃彉鎴愮被銆傝川鐤戜換浣曞悕瀛楁槸鍔ㄨ瘝鎴栬呮淳鐢熻嚜鍔ㄨ瘝鐨勭被錛岀壒鍒槸鍙湁涓涓湁鎰忎箟琛屼負鐨勭被銆傝冭檻涓涓嬮偅涓湁鎰忎箟鐨勮涓烘槸鍚﹀簲褰撹縼縐誨埌宸茬粡瀛樺湪鎴栬呭皻鏈彂鐜扮殑鏌愪釜綾諱腑銆?/span>
(21)鎴戜滑鍦ㄥ垱寤哄簲鐢ㄧ▼搴忕殑鍒嗘瀽妯″瀷鏃跺父甯稿紩鍏ヤ唬鐞嗙被銆傚湪璁捐闃舵錛屾垜浠父浼氬彂鐜板緢澶氫唬鐞嗘病鏈夌敤鐨勶紝搴斿綋鍘婚櫎銆?/span>
(22)灝介噺鍑忓皯綾葷殑鍗忎綔鑰呯殑鏁伴噺銆備竴涓被鐢ㄥ埌鐨勫叾浠栫被鐨勬暟鐩簲褰撳敖閲忓皯銆?/span>
(23)灝介噺鍑忓皯綾誨拰鍗忎綔鑰呬箣闂翠紶閫掔殑娑堟伅鐨勬暟閲忋?/span>
(24)灝介噺鍑忓皯綾誨拰鍗忎綔鑰呬箣闂寸殑鍗忎綔閲忥紝涔熷嵆錛氬噺灝戠被鍜屽崗浣滆呬箣闂翠紶閫掔殑涓嶅悓娑堟伅鐨勬暟閲忋?/span>
(25)灝介噺鍑忓皯綾葷殑鎵囧嚭錛屼篃鍗籌細鍑忓皯綾誨畾涔夌殑娑堟伅鏁板拰鍙戦佺殑娑堟伅鏁扮殑涔樼Н銆?/span>
(26)濡傛灉綾誨寘鍚彟涓涓被鐨勫璞★紝閭d箞鍖呭惈綾誨簲褰撶粰琚寘鍚殑瀵硅薄鍙戦佹秷鎭備篃鍗籌細鍖呭惈鍏崇郴鎬繪槸鎰忓懗鐫浣跨敤鍏崇郴銆?/span>
(27)綾諱腑瀹氫箟鐨勫ぇ澶氭暟鏂規硶閮藉簲褰撳湪澶у鏁版椂闂撮噷浣跨敤澶у鏁版暟鎹垚鍛樸?/span>
(28)綾誨寘鍚殑瀵硅薄鏁扮洰涓嶅簲褰撹秴榪囧紑鍙戣呯煭鏈熻蹇嗙殑瀹歸噺銆傝繖涓暟鐩父甯告槸6銆傚綋綾誨寘鍚浜?涓暟鎹垚鍛樻椂錛屽彲浠ユ妸閫昏緫鐩稿叧鐨勬暟鎹垚鍛樺垝鍒嗕負涓緇勶紝鐒跺悗鐢ㄤ竴涓柊鐨勫寘鍚被鍘誨寘鍚繖涓緇勬垚鍛樸?/span>
(29)璁╃郴緇熷姛鑳藉湪紿勮屾繁鐨勭戶鎵夸綋緋諱腑鍨傜洿鍒嗗竷銆?/span>
(30)鍦ㄥ疄鐜拌涔夌害鏉熸椂錛屾渶濂芥牴鎹被瀹氫箟鏉ュ疄鐜般傝繖甯稿父浼氬鑷寸被娉涙互鎴愮伨錛屽湪榪欑鎯呭喌涓嬶紝綰︽潫搴斿綋鍦ㄧ被鐨勮涓轟腑瀹炵幇錛岄氬父鏄湪鏋勯犲嚱鏁頒腑瀹炵幇錛屼絾涓嶆槸蹇呴』濡傛銆?/span>
(31)鍦ㄧ被鐨勬瀯閫犲嚱鏁頒腑瀹炵幇璇箟綰︽潫鏃訛紝鎶婄害鏉熸祴璇曟斁鍦ㄦ瀯閫犲嚱鏁伴鍩熸墍鍏佽鐨勫敖閲忔繁鐨勫寘鍚眰嬈′腑銆?/span>
(32)綰︽潫鎵渚濊禆鐨勮涔変俊鎭鏋滅粡甯告敼鍙橈紝閭d箞鏈濂芥斁鍦ㄤ竴涓泦涓紡鐨勭3鏂瑰璞′腑銆?/span>
(33)綰︽潫鎵渚濊禆鐨勮涔変俊鎭鏋滃緢灝戞敼鍙橈紝閭d箞鏈濂藉垎甯冨湪綰︽潫鎵娑夊強鐨勫悇涓被涓?/span>
(34)綾誨繀欏葷煡閬撳畠鍖呭惈浠涔堬紝浣嗘槸涓嶈兘鐭ラ亾璋佸寘鍚畠銆?/span>
(35)鍏變韓瀛楅潰鑼冨洿(涔熷氨鏄鍚屼竴涓被鎵鍖呭惈)鐨勫璞$浉浜掍箣闂翠笉搴斿綋鏈変嬌鐢ㄥ叧緋匯?/span>
(36)緇ф壙鍙簲琚敤鏉ヤ負鐗瑰寲灞傛緇撴瀯寤烘ā銆?/span>
(37)媧劇敓綾誨繀欏葷煡閬撳熀綾伙紝鍩虹被涓嶅簲璇ョ煡閬撳叧浜庡畠浠殑媧劇敓綾葷殑浠諱綍淇℃伅銆?/span>
(38)鍩虹被涓殑鎵鏈夋暟鎹兘搴斿綋鏄鏈夌殑錛屼笉瑕佷嬌鐢ㄤ繚鎶ゆ暟鎹傜被鐨勮璁¤呮案榪滈兘涓嶅簲璇ユ妸綾葷殑浣跨敤鑰呬笉闇瑕佺殑涓滆タ鏀懼湪鍏湁鎺ュ彛涓?/span>
(39)鍦ㄧ悊璁轟笂錛岀戶鎵垮眰嬈′綋緋誨簲褰撴繁涓鐐癸紝瓚婃繁瓚婂ソ銆?/span>
(40)鍦ㄥ疄璺典腑錛岀戶鎵垮眰嬈′綋緋葷殑娣卞害涓嶅簲褰撹秴鍑轟竴涓櫘閫氫漢鐨勭煭鏈熻蹇嗚兘鍔涖備竴涓箍涓烘帴鍙楃殑娣卞害鍊兼槸6銆?/span>
(41)鎵鏈夌殑鎶借薄綾婚兘搴斿綋鏄熀綾匯?/span>
(42)鎵鏈夌殑鍩虹被閮藉簲褰撴槸鎶借薄綾匯?/span>
(43)鎶婃暟鎹佽涓哄拰/鎴栨帴鍙g殑鍏辨у敖鍙兘鍦版斁鍒扮戶鎵垮眰嬈′綋緋葷殑楂樼銆?/span>
(44)濡傛灉涓や釜鎴栨洿澶氫釜綾誨叡浜叕鍏辨暟鎹?浣嗘病鏈夊叕鍏辮涓?錛岄偅涔堝簲褰撴妸鍏叡鏁版嵁鏀懼湪涓涓被涓紝姣忎釜鍏變韓榪欎釜鏁版嵁鐨勭被閮藉寘鍚繖涓被銆?/span>
(45)濡傛灉涓や釜鎴栨洿澶氫釜綾繪湁鍏卞悓鐨勬暟鎹拰琛屼負(灝辨槸鏂規硶)錛岄偅涔堣繖浜涚被鐨勬瘡涓涓兘搴斿綋浠庝竴涓〃紺轟簡榪欎簺鏁版嵁鍜屾柟娉曠殑鍏叡鍩虹被緇ф壙銆?/span>
(46)濡傛灉涓や釜鎴栨洿澶氫釜綾誨叡浜叕鍏辨帴鍙?鎸囩殑鏄秷鎭紝鑰屼笉鏄柟娉?錛岄偅涔堝彧鏈変粬浠渶瑕佽澶氭佸湴浣跨敤鏃訛紝浠栦滑鎵嶅簲褰撲粠涓涓叕鍏卞熀綾葷戶鎵褲?/span>
(47)瀵瑰璞$被鍨嬬殑鏄劇ず鐨勫垎鎯呭喌鍒嗘瀽涓鑸槸閿欒鐨勩傚湪澶у鏁拌繖鏍風殑鎯呭喌涓嬶紝璁捐鑰呭簲褰撲嬌鐢ㄥ鎬併?/span>
(48)瀵瑰睘鎬у肩殑鏄劇ず鐨勫垎鎯呭喌鍒嗘瀽甯稿父鏄敊璇殑銆傜被搴斿綋瑙h﹀悎鎴愪竴涓戶鎵垮眰嬈$粨鏋勶紝姣忎釜灞炴у奸兘琚彉鎹㈡垚涓涓淳鐢熺被銆?/span>
(49)涓嶈閫氳繃緇ф壙鍏崇郴鏉ヤ負綾葷殑鍔ㄦ佽涔夊緩妯°傝瘯鍥劇敤闈欐佽涔夊叧緋繪潵涓哄姩鎬佽涔夊緩妯′細瀵艱嚧鍦ㄨ繍琛屾椂鍒囨崲綾誨瀷銆?/span>
(50)涓嶈鎶婄被鐨勫璞″彉鎴愭淳鐢熺被銆傚浠諱綍鍙湁涓涓疄渚嬬殑媧劇敓綾婚兘瑕佸鍔犲皬蹇冦?/span>
(51)濡傛灉浣犺寰楅渶瑕佸湪榪愯鏃跺埢鍒涘緩鏂扮殑綾伙紝閭d箞閫鍚庝竴姝ヤ互璁ゆ竻浣犺鍒涘緩鐨勬槸瀵硅薄銆傜幇鍦紝鎶婅繖浜涘璞℃鎷垚涓涓被銆?/span>
(52)鍦ㄦ淳鐢熺被涓敤絀烘柟娉?涔熷氨鏄粈涔堜篃涓嶅仛鐨勬柟娉?鏉ヨ鍐欏熀綾諱腑鐨勬柟娉曞簲褰撴槸闈炴硶鐨勩?/span>
(53)涓嶈鎶婂彲閫夊寘鍚悓瀵圭戶鎵跨殑闇瑕佺浉娣鋒穯銆傛妸鍙夊寘鍚緩妯℃垚緇ф壙浼氬甫鏉ユ硾婊ユ垚鐏劇殑綾匯?/span>
(54)鍦ㄥ垱寤虹戶鎵垮眰嬈℃椂錛岃瘯鐫鍒涘緩鍙鐢ㄧ殑妗嗘灦錛岃屼笉鏄彲澶嶇敤鐨勭粍浠躲?/span>
(55)濡傛灉浣犲湪璁捐涓嬌鐢ㄤ簡澶氶噸緇ф壙錛屽厛鍋囪浣犵姱浜嗛敊璇傚鏋滄病鐘敊璇紝浣犻渶瑕佽娉曡瘉鏄庛?/span>
(56)鍙鍦ㄩ潰鍚戝璞¤璁′腑鐢ㄥ埌浜嗙戶鎵匡紝闂嚜宸變袱涓棶棰橈細(1)媧劇敓綾繪槸鍚︽槸瀹冪戶鎵跨殑閭d釜涓滆タ鐨勪竴涓壒孌婄被鍨嬶紵(2)鍩虹被鏄笉鏄淳鐢熺被鐨勪竴閮ㄥ垎錛?/span>
(57)濡傛灉浣犲湪涓涓潰鍚戝璞¤璁′腑鍙戠幇浜嗗閲嶇戶鎵垮叧緋伙紝紜繚娌℃湁鍝釜鍩虹被瀹為檯涓婃槸鍙︿竴涓熀綾葷殑媧劇敓綾匯?/span>
(58)鍦ㄩ潰鍚戝璞¤璁′腑濡傛灉浣犻渶瑕佸湪鍖呭惈鍏崇郴鍜屽叧鑱斿叧緋婚棿浣滃嚭閫夋嫨錛岃閫夋嫨鍖呭惈鍏崇郴銆?/span>
(59)涓嶈鎶婂叏灞鏁版嵁鎴栧叏灞鍑芥暟鐢ㄤ簬綾葷殑瀵硅薄鐨勮杽璁板伐浣溿傚簲褰撲嬌鐢ㄧ被鍙橀噺鎴栫被鏂規硶銆?/span>
(60)闈㈠悜瀵硅薄璁捐鑰呬笉搴斿綋璁╃墿鐞嗚璁″噯鍒欐潵鐮村潖浠栦滑鐨勯昏緫璁捐銆備絾鏄紝鍦ㄥ閫昏緫璁捐浣滃嚭鍐崇瓥鐨勮繃紼嬩腑鎴戜滑緇忓父鐢ㄥ埌鐗╃悊璁捐鍑嗗垯銆?/span>
(61)涓嶈緇曞紑鍏叡鎺ュ彛鍘諱慨鏀瑰璞$殑鐘舵併?/span>
鍘熸枃鍦板潃錛?a style="color: #0066ff; text-decoration: none; ">http://coolshell.cn/articles/4119.html
鍥犱負涔嬪墠鏀惰棌鐨勫湴鍧鎵句笉鍒頒簡錛屾墍浠ラ噸鏂板彂涓涓?/p>
鏄ㄥぉ鍐欎簡涓綃?a title="濡備綍瀛﹀ソC璇█" target="_blank" style="color: #0066ff; text-decoration: none; ">濡備綍瀛﹀ソC璇█錛屽氨鏈変漢鍥炲闂垜濡備綍瀛﹀ソC++錛屾墍浠ワ紝鎴戞妸鎴戜釜浜虹殑涓浜涘涔犵粡楠屽啓鍦ㄨ繖閲岋紝甯屾湜瀵瑰ぇ瀹舵湁鐢ㄣ傞鍏堬紝鍥犱負濡備綍瀛﹀ソC璇█涓皥鍒頒簡綆楁硶鍜岀郴緇燂紝鎵浠ヨ繖閲屽氨鍙皥C++璇█銆?/p>
甯屾湜娌℃湁鍚撳埌澶у錛屽茍嬈㈣繋澶у琛ュ厖銆?/p>
—————鏇存柊 2011/03/30 19:20————
鏇存柊鍑犱釜瑙傜偣錛?/p>
濡備綍鍒ゆ柇涓孌電▼搴忔槸鐢盋 緙栬瘧紼嬪簭榪樻槸鐢盋++緙栬瘧紼嬪簭緙栬瘧鐨勶紵
絳旀錛?nbsp;
濡備綍鎵撳嵃鍑哄綋鍓嶆簮鏂囦歡鐨勬枃浠跺悕浠ュ強婧愭枃浠剁殑褰撳墠琛屽彿錛?nbsp;
絳旀錛?nbsp;
cout << __FILE__ ;
cout<<__LINE__ ;
__FILE__鍜宊_LINE__鏄郴緇熼瀹氫箟瀹忥紝榪欑瀹忓茍涓嶆槸鍦ㄦ煇涓枃浠朵腑瀹氫箟鐨勶紝鑰屾槸鐢辯紪璇戝櫒瀹氫箟鐨勩?/p>
main 涓誨嚱鏁版墽琛屽畬姣曞悗錛屾槸鍚﹀彲鑳戒細鍐嶆墽琛屼竴孌典唬鐮侊紝緇欏嚭璇存槑錛?nbsp;
絳旀錛氬彲浠ワ紝鍙互鐢╛onexit 娉ㄥ唽涓涓嚱鏁幫紝瀹冧細鍦╩ain 涔嬪悗鎵ц銆?/p>
The _onexit function is passed the address of a function (func) to be called when the program terminates normally. Successive calls to _onexit create a register of functions that are executed in LIFO (last-in-first-out) order. The functions passed to _onexit cannot take parameters.
綾繪垚鍛樺嚱鏁扮殑閲嶈澆銆佽鐩栧拰闅愯棌鍖哄埆錛?nbsp;
絳旀錛?nbsp;
a.鎴愬憳鍑芥暟琚噸杞界殑鐗瑰緛錛?nbsp;
錛?錛夌浉鍚岀殑鑼冨洿錛堝湪鍚屼竴涓被涓級錛?nbsp;
錛?錛夊嚱鏁板悕瀛楃浉鍚岋紱
錛?錛夊弬鏁頒笉鍚岋紱
錛?錛塿irtual 鍏抽敭瀛楀彲鏈夊彲鏃犮?/p>
錛?錛塩onst鐨勫尯鍒?nbsp;
b.瑕嗙洊鏄寚媧劇敓綾誨嚱鏁拌鐩栧熀綾誨嚱鏁幫紝鐗瑰緛鏄細
錛?錛変笉鍚岀殑鑼冨洿錛堝垎鍒綅浜庢淳鐢熺被涓庡熀綾伙級錛?nbsp;
錛?錛夊嚱鏁板悕瀛楃浉鍚岋紱
錛?錛夊弬鏁扮浉鍚岋紱
錛?錛夊熀綾誨嚱鏁板繀欏繪湁virtual 鍏抽敭瀛椼?nbsp;
c.“闅愯棌”鏄寚媧劇敓綾葷殑鍑芥暟灞忚斀浜嗕笌鍏跺悓鍚嶇殑鍩虹被鍑芥暟錛岃鍒欏涓嬶細
錛?錛夊鏋滄淳鐢熺被鐨勫嚱鏁頒笌鍩虹被鐨勫嚱鏁板悓鍚嶏紝浣嗘槸鍙傛暟涓嶅悓銆傛鏃訛紝涓嶈鏈夋棤virtual鍏抽敭瀛楋紝鍩虹被鐨勫嚱鏁板皢琚殣钘忥紙娉ㄦ剰鍒笌閲嶈澆娣鋒穯錛夈?nbsp;
錛?錛夊鏋滄淳鐢熺被鐨勫嚱鏁頒笌鍩虹被鐨勫嚱鏁板悓鍚嶏紝騫朵笖鍙傛暟涔熺浉鍚岋紝浣嗘槸鍩虹被鍑芥暟娌℃湁virtual 鍏抽敭瀛椼傛鏃訛紝鍩虹被鐨勫嚱鏁拌闅愯棌錛堟敞鎰忓埆涓庤鐩栨販娣嗭級
(1)宸茬煡絎簩緇?/div> (2)宸茬煡絎竴緇?/div> (3)宸茬煡絎竴緇達紝涓嬈″垎閰嶅唴瀛?淇濊瘉鍐呭瓨鐨勮繛緇? (4)涓ょ淮閮芥湭鐭?/div> (5)涓ょ淮閮芥湭鐭ワ紝涓嬈″垎閰嶅唴瀛?淇濊瘉鍐呭瓨鐨勮繛緇? 2.C++鍔ㄦ佸垎閰嶄簩緇存暟緇?/strong> (1)宸茬煡絎簩緇?/div> (2)宸茬煡絎竴緇?/div> (3)宸茬煡絎竴緇達紝涓嬈″垎閰嶅唴瀛?淇濊瘉鍐呭瓨鐨勮繛緇? (4)涓ょ淮閮芥湭鐭?/div> (5)涓ょ淮閮芥湭鐭ワ紝涓嬈″垎閰嶅唴瀛?淇濊瘉鍐呭瓨鐨勮繛緇? 澶氳涓鍙ワ細new鍜宒elete瑕佹敞鎰忛厤瀵逛嬌鐢紝鍗蟲湁澶氬皯涓猲ew灝辨湁澶氬皯涓猟elete錛岃繖鏍鋒墠鍙互閬垮厤鍐呭瓨娉勬紡錛?/span> 3.闈欐佷簩緇存暟緇勪綔涓哄嚱鏁板弬鏁頒紶閫?/strong> 濡傛灉閲囩敤涓婅堪鍑犵鏂規硶鍔ㄦ佸垎閰嶄簩緇存暟緇勶紝閭d箞灝嗗搴旂殑鏁版嵁綾誨瀷浣滀負鍑芥暟鍙傛暟灝卞彲浠ヤ簡銆傝繖閲岃璁洪潤鎬佷簩緇存暟緇勪綔涓哄嚱鏁板弬鏁頒紶閫掞紝鍗蟲寜鐓т互涓嬬殑璋冪敤鏂瑰紡錛?/div> int a[2][3]; func(a); C璇█涓皢闈欐佷簩緇存暟緇勪綔涓哄弬鏁頒紶閫掓瘮杈冮夯鐑︼紝涓鑸渶瑕佹寚鏄庣浜岀淮鐨勯暱搴︼紝濡傛灉涓嶇粰瀹氱浜岀淮闀垮害錛屽垯鍙兘鍏堝皢鍏朵綔涓轟竴緇存寚閽堜紶閫掞紝鐒跺悗鍒╃敤浜岀淮鏁扮粍鐨勭嚎鎬у瓨鍌ㄧ壒鎬э紝鍦ㄥ嚱鏁頒綋鍐呰漿鍖栦負瀵規寚瀹氬厓绱犵殑璁塊棶銆?/div> 棣栧厛鍐欏ソ嫻嬭瘯浠g爜錛屼互楠岃瘉鍙傛暟浼犻掔殑姝g‘鎬э細 (1)緇欏畾絎簩緇撮暱搴?/div> (2)涓嶇粰瀹氱浜岀淮闀垮害 娉ㄦ剰錛氫嬌鐢ㄨ鍑芥暟鏃墮渶瑕佸皢浜岀淮鏁扮粍棣栧湴鍧寮哄埗杞崲涓轟竴緇存寚閽堬紝鍗砯unc((int*)a); |