力扣 767 重構字串

2022-05-19 18:02:56 字數 986 閱讀 3082

給定乙個字串s,檢查是否能重新排布其中的字母,使得兩相鄰的字元不同。

若可行,輸出任意可行的結果。若不可行,返回空字串。

示例 1:

輸入: s = "aab"

輸出: "aba"

示例 2:

輸入: s = "aaab"

輸出: ""

注意:s 只包含小寫字母並且長度在[1, 500]區間內。

public

string reorganizestring(string s)

//記錄26個字母

int english = new

int[26];

int index = 0;

int maxcount = 0; //

得到最大個數的多少

int maxcountindex = 0; //

得到哪個字母為個數最多的

for(int i = 0; i< s.length(); i++)

}//如果某個字母的個數 大於 字串的字串的長度+1 / 2 ,說明無法將這個字元倆倆分割開

if (maxcount > (s.length() + 1) >> 1)

//結果字串陣列

char res = new

char

[s.length()];

int resultindex = 0;

//將最多的字母從頭開始放在偶數字

while(english[maxcountindex] > 0)

//按照每隔兩個接著放字元

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

res[resultindex] = (char) (i + 'a');

resultindex += 2;

english[i]--;}}

return

newstring(res);

}

767 重構字串

重構字串 題目描述提示幫助提交記錄社群討論閱讀解答 隨機一題 給定乙個字串s,檢查是否能重新排布其中的字母,使得兩相鄰的字元不同。若可行,輸出任意可行的結果。若不可行,返回空字串。示例 1 輸入 s aab 輸出 aba 示例 2 輸入 s aaab 輸出 注意 s 只包含小寫字母並且長度在 1,5...

767 重構字串

給定乙個字串s,檢查是否能重新排布其中的字母,使得兩相鄰的字元不同。若可行,輸出任意可行的結果。若不可行,返回空字串。public string reorganizestring string s int counts new int 26 int maxcount 0 int length s.l...

767 重構字串

767.重構字串 給定乙個字串s,檢查是否能重新排布其中的字母,使得兩相鄰的字元不同。若可行,輸出任意可行的結果。若不可行,返回空字串。示例 1 輸入 s aab 輸出 aba 示例 2 輸入 s aaab 輸出 注意 s 只包含小寫字母並且長度在 1,500 區間內。基本思路 貪心演算法,首先使用...