給定字串A和B,輸出A和B中的最大公共子串。

2021-06-15 02:23:36 字數 553 閱讀 7814

從網上down的例子,現在簡要分析下。複雜度比較高,還是挺巧妙的。本人也沒有想到更好的解決方法:

1.用到了strstr函式,該函式再string.h標頭檔案中有定義,竟然之前沒有見過。哎。。該函式char *strstr(char *str1, char *str2)的意思就是從字串str1中查詢是否有字串str2,如果有,從str1中的str2位置起,返回str1的指標,如果沒有,返回null。

2.先從相對短的串shortstring開始,與長的串longstring進行整理比較,看是否是其完整子串。 3.

如果不是,控制迴圈i,j,其中 i 變數控制了比較子串個數逐漸減小,j 控制一定個數前提下,各種串的不同可能。這樣從length-1到1個字元,各種子串的可能均已列出。

4.在列出的子串中與較長子串進行比較。 

#include

#include

#include

char *commanstring(char shortstring, char longstring)

}return null;

}void main()

B 字串的展開

time limit 1 sec memory limit 128 mb submit 44 solved 15 submit status web board 在初賽普及組的 閱讀程式寫結果 的問題中,我們曾給出乙個字串展開的例子 如果在輸入的字串中,含有類似於 d h 或 4 8 的子串,我們就...

模擬 B 字串修改

有兩個字串 s,t 其中 s 只包含小寫字母以及 t 只包含小寫字母。你可以進行任意多次操作,每次選擇 s 中的乙個 將它修改為任意多個 可以是0個 它的前乙個字元。請求出是否能將 s 修改為 t t leq 100,len leq 3 10 4 考慮記錄 t 中連續的字母以及長度,考慮用 s 匹配...

SQL根據字串B分隔字串A

建立錶值函式 1 create function dbo f split 2 3 splitstring nvarchar max 源字串a 4 separator nvarchar 10 分隔字串b,預設為空格5 6returns splitstringstable table 輸出的資料表7 8...