.[題目分析]本題算法采用順序存儲結構求串s和串t的最大公共子串串s用i指針(<=i<=slen)t串用j指針(<=j<=tlen)算法思想是對每個i(<=i<=slen即程序中第一個WHILE循環)來求從i開始的連續字符串與從j(<=j<=tlen即程序中第二個WHILE循環)開始的連續字符串的最大匹配程序中第三個(即最內層)的WHILE循環是當s中某字符(s[i])與t中某字符(t[j])相等時求出局部公共子串若該子串長度大於已求出的最長公共子串(初始為0)則最長公共子串的長度要修改
程序(a)()(i+k<=slen)AND(j+k<=tlen) AND(s[i+k]=t[j+k]) //如果在s和t的長度內對應字符相等則指針k 後移(加)
()con:=false //s和t對應字符不等時置標記退出
()j:=j+k //在t串中從第j+k字符再與s[i]比較
()j:=j+ //t串取下一字符
()i=i+ //s串指針i後移(加)
程序(b)() i+k<=slen && j+k<=tlen && s[i+k]==t[j+k] //所有注釋同上(a)
() con= () j+=k () j++ () i++
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/sjjg/201311/22618.html