838 推多公尺諾

2022-09-22 06:12:09 字數 1606 閱讀 7778

n 張多公尺諾骨牌排成一行,將每張多公尺諾骨牌垂直豎立。在開始時,同時把一些多公尺諾骨牌向左或向右推。

每過一秒,倒向左邊的多公尺諾骨牌會推動其左側相鄰的多公尺諾骨牌。同樣地,倒向右邊的多公尺諾骨牌也會推動豎立在其右側的相鄰多公尺諾骨牌。

如果一張垂直豎立的多公尺諾骨牌的兩側同時有多公尺諾骨牌倒下時,由於受力平衡, 該骨牌仍然保持不變。

就這個問題而言,我們會認為一張正在倒下的多公尺諾骨牌不會對其它正在倒下或已經倒下的多公尺諾骨牌施加額外的力。

給你乙個字串 dominoes 表示這一行多公尺諾骨牌的初始狀態,其中:

dominoes[i] = 'l',表示第 i 張多公尺諾骨牌被推向左側,

dominoes[i] = 'r',表示第 i 張多公尺諾骨牌被推向右側,

dominoes[i] = '.',表示沒有推動第 i 張多公尺諾骨牌。

返回表示最終狀態的字串。

import j**a.util.scanner;

class solution

int left = new int[dominoes.length()];

int right = new int[dominoes.length()];

for (int i = 0; i < dominoes.length(); ++i) else if (dominoes.charat(i) == 'r') else else }}

for (int i = dominoes.length() - 1; i >= 0; --i) else if (dominoes.charat(i) == 'l') else else }}

char ans = new char[dominoes.length()];

for (int i = 0; i < ans.length; ++i) else if (left[i] == 0 && right[i] != 0) else if (right[i] == 0 && left[i] != 0) else else }}

return new string(ans);

}public static void main(string args)

}}

import j**a.util.*;

class solution

for (int i = 0; i < n; i++)

}char res = new char[n];

arrays.fill(res, '.');

while (!queue.isempty()) else if (time[ni] == time[i] + 1) }}

}return new string(res);

}}

class solution 

char right = j < n ? s[j] : 'r';

if (left == right)

} else if (left == 'r' && right == 'l')

}left = right;

i = j + 1;

}return new string(s);

}}

838 推多公尺諾

一行中有n張多公尺諾骨牌,我們將每張多公尺諾骨牌垂直豎立。在開始時,我們同時把一些多公尺諾骨牌向左或向右推。每過一秒,倒向左邊的多公尺諾骨牌會推動其左側相鄰的多公尺諾骨牌。同樣地,倒向右邊的多公尺諾骨牌也會推動豎立在其右側的相鄰多公尺諾骨牌。如果同時有多公尺諾骨牌落在一張垂直豎立的多公尺諾骨牌的兩邊...

838 推多公尺諾

一行中有 n 張多公尺諾骨牌,我們將每張多公尺諾骨牌垂直豎立。在開始時,我們同時把一些多公尺諾骨牌向左或向右推。每過一秒,倒向左邊的多公尺諾骨牌會推動其左側相鄰的多公尺諾骨牌。同樣地,倒向右邊的多公尺諾骨牌也會推動豎立在其右側的相鄰多公尺諾骨牌。如果同時有多公尺諾骨牌落在一張垂直豎立的多公尺諾骨牌的...

LeetCode 838 推多公尺諾

一行中有n張多公尺諾骨牌,我們將每張多公尺諾骨牌垂直豎立。在開始時,我們同時把一些多公尺諾骨牌向左或向右推。給定表示初始狀態的字串 s 如果第 i 張多公尺諾骨牌被推向左邊,則s i l 如果第 i 張多公尺諾骨牌被推向右邊,則s i r 如果第 i 張多公尺諾骨牌沒有被推動,則s i 返回表示最終...