洛谷P1032字串變換

2021-08-28 00:09:00 字數 1222 閱讀 5407

題目描述

已知有兩個字串a,

b a,b

及一組字串變換的規則(至多6個規則): a1

−>b1

a 1−

>b1

a2−>b2

a 2−

>b2

規則的含義為:在a的子串中a1

a

1可以變成b1

b

1,a2

a

2可以變成b2

b

2….. 求a

a

變成b' role="presentation">b

b所需的最小的轉換次數

輸入a1

b1a 1b

1a2b

2 a2b

2a3b

3 a3b

3….

輸出

最小的轉換次數

例子

abaaaba abcdaba

a bb d

d ee f

f gg c

輸出

8
解題思路

廣度優先搜尋,注意佇列裡面字串判重(利用map),熟悉string::find和string::replace用法

#include 

#include

#include

#include

using

namespace

std;

struct e;

int n=0;

string ori[10],dis[10];

queue

q;string a,b;

map map1;

bool bfs()

// coutif(!map1.count(tmpstr))}}

}}

return0;}

/*s1.find(s2,pos);

s1.replace(pos,s2.size(),s3);

*/int main(int argc, char** argv)

洛谷 P1032 字串變換

洛谷 p1032 字串變換 題目描述 已知有兩個字串 a,b 及一組字串變換的規則 至多6個規則 a1 b1 a2 b2 規則的含義為 在 a 中的子串 a1 可以變換為 b1 a2 可以變換為 b2 例如 a abcd b xyz 變換規則為 abc xu ud y y yz 則此時,a 可以經過...

洛谷 P1032 字串變換

已知有兩個字串 a,b 及一組字串變換的規則 至多 6 個規則 a1 b1 a2 b2 規則的含義為 在a 中的子串 a1 可以變換為 b1 a2可以變換為 b2 例如 a abcd bb xyz 變換規則為 abc xu ud y y yz 則此時,a 可以經過一系列的變換變為 b 其變換的過程為...

洛谷 P1032 字串變換

題意 給乙個初始字串和乙個目標字串,然後有最多6個規則,從前乙個字串可以變到後乙個字串。詢問初始字元轉能否經過這些規則的變換最終變為目標字串。可以的話輸出最小的步數,否則輸出 no answer 思路 因為規則很少,直接暴力bfs所有可能的狀態就好了,然後用乙個map來判重。偷點懶,直接用strin...