已知有兩個字串 a, b及一組字串變換的規則(至多6個規則):
a1a1 -> b1b1
a2a2 -> b2b2
…規則的含義為:在 a 中的子串 a1 可以變換為 b1、a2 可以變換為 b2 …。
例如:a=』abcd』 b=』xyz』
變換規則為:
『abc』->『xu』 『ud』->『y』 『y』->『yz』
則此時,a 可以經過一系列的變換變為 b,其變換的過程為:
『abcd』->『xud』->『xy』->『xyz』
共進行了三次變換,使得 a 變換b。
輸入格式
輸入格式如下:
a b
a1 b1 \
a2 b2 |
-> 變換規則
… … /
所有字串長度的上限為 20。
輸出格式
若在 10 步(包含 10步)以內能將 a 變換為 b ,則輸出最少的變換步數;否則輸出」no answer!」
輸入樣例:
abcd xyz
abc xu
ud y
y yz
輸出樣例:
3
超時乙個點,這題得用雙向bfs,後面完善
#include
using
namespace std;
const
int n=10;
int n;
string a,b;
string x[n]
,y[n]
;int
bfs(string u)}}
}return-1
;}intmain()
if(bfs(a)!=-
1)cout<<
bfs(a)
cout<<
"no answer!"
}
字串變換
現有乙個字典,同時給定字典中的兩個字串s和t,給定乙個變換,每次可以改變字串中的任意乙個字元,請設計乙個演算法,計算由s變換到t所需的最少步數,同時需要滿足在變換過程中的每個串都是字典中的串。給定乙個string陣列dic,同時給定陣列大小n,串s和串t,請返回由s到t變換所需的最少步數。若無法變換...
字串變換
字串變換 相信經過這個學期的程式設計訓練,大家對於字串的操作已經掌握的相當熟練了。今天,徐老師想測試一下大家對於字串操作的掌握情況。徐老師自己定義了1,2,3,4,5這5個引數分別指代不同的5種字串操作,你需要根據傳入的引數,按照徐老師的規定,對輸入字串進行格式轉化。徐老師指定的操作如下 1.表示全...
P1032 字串變換 bfs
評測記錄 給若干個變化規則,表示a中的a xa x ax 子串可以變化為b xb x bx 中的子串,求至少要多少次變化才可以變為b子串。暴力廣蒐用map mapma p庫判重。include include include include include using namespace std q...