0
有一個字符串,其字符只能是a
,b
或_
,字符串中只有一個_
。將一個字符串轉換爲另一個字符串
在每一步中,我們可以修改字符串如下:
_
可與其相鄰的字符被交換,例如a_ba
可以改變爲任一_aba
或ab_a
。
您可以把_字符與旁邊相鄰字符只有當相鄰的字符是從旁邊相鄰的性格不同。 (例如aba_ab
可以轉換爲a_abab
或ababa_
,但ab_aab
不能轉換爲abaa_b
,因爲a
不能跳過a
)。
給出兩個字符串,初始狀態和最終狀態(長度相同),必須輸出將初始狀態的字符串更改爲最終狀態字符串所需的最小步數。
例如:
string s1 ,s2 ;
input: s1 = a_b , s2 = ab_
output: 1
input: s1 = aba_a , s2 = _baaa
output: 2
「頂點是所有可能的狀態」,通過您指的是指定給定字符串中的每個字符的狀態。如果你能爲我提供這個問題的pseduo代碼,那也會更好。我在這個問題上花費了很多時間 –
頂點是您爲生成字符串而生成的中間字符串,邊將是您應用的操作。 – Rupak
在問題的編輯部分,我發佈了新的解決方案。那是對的嗎? –