給你乙個合法的括號序列s1,每次你可以刪除乙個"()"
你可以刪除0個或者多個"()"
求能否刪成另乙個括號序列s2
第一行輸入乙個字串s (2 ≤ |s| ≤ 100)
第二行輸入乙個字串t (2 ≤ |t| ≤ 100 )
如果可以輸出"possible"
否則輸出"impossible"
(()
)()
possible
()(
)
possible
(()
()()
)(((
)))
impossible
(((
))((
())(
))()
)(()
(())
())
possible
(((
))((
())(
))()
)(((
)()(
)()(
)))
impossible
對於這種判斷能否轉化的問題,基本都用dp[i][j][k]1/0的辦法來判斷時候匹配,由於匹配存在多種情況,本位匹配和非本位匹配。都要考慮上
k=刪除的『(』數量-刪除的『)』數量
#include
#include
using
namespace std;
const
int maxn =
105;
char s[maxn]
, t[maxn]
;int dp[
105]
[105][
55];int
main()
}}}if
(dp[len1]
[len2][0
])cout <<
"possible"
<< endl;
else
cout <<
"impossible"
<< endl;
return0;
}}
刪括號(牛客)
題目描述 給你乙個合法的括號序列s1,每次你可以刪除乙個 你可以刪除0個或者多個 求能否刪成另乙個括號序列s2 輸入描述 第一行輸入乙個字串s 2 s 100 第二行輸入乙個字串t 2 t 100 輸出描述 如果可以輸出 possible 否則輸出 impossible 示例1輸入 複製 輸出 複製...
牛客 21303 刪括號
給你乙個合法的括號序列s1,每次你可以刪除乙個 你可以刪除0個或者多個 求能否刪成另乙個括號序列s2 第一行輸入乙個字串s 2 s 100 第二行輸入乙個字串t 2 t 100 如果可以輸出 possible 否則輸出 impossible possible possible impossible ...
牛客網 刪數
有乙個陣列a n 順序存放0 n 1,要求每隔兩個數刪掉乙個數,到末尾時迴圈至開頭繼續進行,求最後乙個被刪掉的數的原始下標位置。以8個數 n 7 為例 0,1,2,3,4,5,6,7 0 1 2 刪除 3 4 5 刪除 6 7 0 刪除 如此迴圈直到最後乙個數被刪除。輸入描述 每組資料為一行乙個整數...