小公尺OJ 6 交叉佇列

2021-09-26 20:08:08 字數 686 閱讀 1279

思路:

大概思想如下:

1. 動態規劃求解,構造dp 二維陣列;

2. 設dp[i][j], i 為 第乙個字串的第i個字母;j 為 第二個字串的第j個字母  

3. dp[i][j] 如果為 1 ,表示 s1[i] 等於 s3[i+j] 且 dp[i−1][j] 等於 1,同理s2

4. 簡單的說 dp[i][j] 為 1 就表示這個點可達,以 dp[0][0] 為起點, dp[len1][len2] 為終點,dp陣列中值為 1 的點為路徑,向下走表示取 s1 的字元,向右走表示取  s2 的字元。這樣就將抽象的字元組合轉化成了更好理解的二維陣列來表示;

5. 最優子結構即為: s1,s2 的 i,j 點字元之前的字元能否交叉組合成字串 s3 的前 i+j 個字元,轉換到二維陣列即為,i,j 點左側點和上方的點是否可達。 

private

static

string solution(string line)

for (int i = 1; i <= len1; i++)

for (int i = 1; i <= len0; i++)

}if (dp[len0][len1] == 1)

return

true + "";

return

false + "";

}

小公尺OJ 6(交叉佇列)

交叉佇列 序號 6 難度 有挑戰 時間限制 1000ms 記憶體限制 10m描述 給出三個佇列 s1,s2,s3 判斷 s3 是否是由 s1 和 s2 交叉得來。如 s1 為 aabcc s2 為 dbbca。當 s3 為 aadbbcbcac 時,返回 true 即將 s1 拆成三部分 aa,bc...

小公尺OJ 6 交叉佇列

將題目可以轉換成尋找一條路徑。走過s1或s2時,不能跳過或回頭,只能沿著當前字串前進或者跳到另乙個字串上一次走到的位置。利用dp i j 記錄路徑,i表示走到s1的當前位置,j表示走到s2的當前位置,dp i j 表示當前路徑是否等於與s3截止到 i j 的相等。include using name...

南陽理工oj6題

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現有一塊草坪,長為20公尺,寬為2公尺,要在橫中心線上放置半徑為ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數ri 0 輸入 第一行m表示有m組測試資料 每一組測試資料的第一行有乙個整數數n,n表示共有n個噴水裝...