一、問題描述
二、問題分析
兩個字串的公共字串問題的求解,可以採用一種比較簡單的方法,如果要提高演算法效率,可以對一些方面進行優化。分別定義兩個指標指向兩個字串首字元,開始搜尋從這兩個字元開始得到的最長公共字串。搜尋字串時候,遇到不相同的字元即停止搜尋。然後後移一位第二個字串的指標,再重複上述搜尋過程,知道第二個字串的指標移動到最後乙個字元時候,就後移一位第乙個字串的指標,這樣等到兩個指標均移動到對應字串的最後乙個字元時候,就可以得到全域性的最長公共字串。
三、源**與分析
以下**中int getcommonstrlength(char * pfirststr, char * psecondstr)函式即為求解最長公共字串長度的函式。該函式中,最外層的兩個for迴圈對應字串指標後移操作,內層的while迴圈為在匹配到相同的字元時向後繼續匹配,直到遇到第乙個不匹配的字元即停止。
#include "stdio.h"
#include "string.h"
int getcommonstrlength(char * pfirststr, char * psecondstr);
void main()
int getcommonstrlength(char * pfirststr, char * psecondstr)
else
break;}}
if (num>maxnum)}}
return maxnum;
}四、程式執行結果
圖1 程式執行結果圖
華為OJ(字串匹配)
題目 字串匹配 描述判斷短字串中的所有字元是否在長字串中全部出現 詳細描述 介面說明 原型 boolisallcharexist char pshortstring,char plongstring 輸入引數 char pshortstring 短字串 char plongstring 長字串 知識...
華為OJ(字串排序)
描述 編寫乙個程式,將輸入字串中的字元按如下規則排序。規則1 英文本母從a到 z排列,不區分大小寫。如,輸入 type 輸出 epty規則2 同乙個英文本母的大小寫同時存在時,按照輸入順序排列。如,輸入 baba 輸出 aabb規則3 非英文本母的其它字元保持原來的位置。如,輸入 by?e 輸出 b...
華為OJ字串反轉
描述 寫出乙個程式,接受乙個字串,然後輸出該字串反轉後的字串。例如 知識點陣列,指標 執行時間限制 10m記憶體限制 128輸入 輸入n個字元 輸出輸出該字串反轉後的字串 樣例輸入 abcd 樣例輸出 dcba 思路,後面的與前面的交換。include using namespace std inc...