字串拼接

2022-08-21 09:54:13 字數 1218 閱讀 5769

題目:給定3個字串a, b, c。你的任務是判斷c是否可由a, b拼接出來。

c可由a, b拼接則意味著存在一種情況,將c拆分成兩個子字串,這兩個子字串分為等於a, b。注,c在拆分過程中,c中的每個字元只能屬於兩個子串中的乙個。

輸入包含多組樣例,樣例數不超過20。

第一行乙個整數t,表示樣例數。

接下來3t行,每三行為一組樣例。每組樣例包含3行,分別為字串a, b, c(1≤字

符串長度

≤2×10

3'>1≤字串長度≤2000

)。對於每組輸入,輸出yes,如果c可由a, b拼接; no,如果不可拼接。

樣例輸入:

2

abcdef

adebcf

abcdef

abecdf

樣例輸出:

yes

no請注意,字元之間的順序不能改變。

思路:dp[i][j]:表示第 1 個字串的第 i 個字元,第 2 個字串的第 j 個位置

狀態轉移:dp[i][j]=dp[i][j]||dp[i-1][j];

dp[i][j]=dp[i][j]||dp[i][j-1];

1 #include2 #include3 #include4 #include5 #include6 #include7 #include 8 #include

9 #include10 #include11 #include12 #include

13 typedef long

long

ll;14

using

namespace

std;

15#define maxn 2005

16int

lena, lenb, lenc;

17string

a, b, c;

18int

dp[maxn][maxn];

19int

main()

32for (int i = 0; i <= lena; i++)

38if (j && dp[i][j-1] && b[j - 1] == c[i + j - 1

]) 41}42

}43 puts( dp[lena][lenb] ? "

yes": "no"

);4445}

46return0;

47 }

拼接字串

border 1 class box 標籤名稱th 是否顯示th 標籤順序th tr thead 首頁td class check 是option 否option select td class number 1option 2option 3option 4option 5option 6opti...

字串拼接

給定兩個字串s1和s2,合併成乙個新的字串s。合併規則為,s1的第乙個字元為s的第乙個字元,將s2的最後乙個字元作為s的第二個字元 將s1的第二個字元作為s的第三個字元,將s2的倒數第二個字元作為s的第四個字元,以此類推。包含多組測試資料,每組測試資料報含兩行,代表長度相等的兩個字串s1和s2 僅由...

字串拼接

本文總結記錄linux c中有關字串的拼接方法,strncat 和 snprintf 函式 一 strncat 實現字串拼接 char strncat char dest,const char src,size t n 宣告,n 為 src 字串長度 char strncat char dest,c...