767 重構字串 LeetCode C

2021-09-28 23:44:52 字數 812 閱讀 4801

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

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

示例 1:

輸入: s = "aab"

輸出: "aba"

示例 2:

輸入: s = "aaab"

輸出: ""

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

解題思路:1.取得每個字元的個數;

2.根據個數進行公升序排列;

3.依次將相同字元間隔插入到新的string builder中。

c# **如下:

static string reorganizestring(string s)

else dic.add(c, 1);

}if (len % 2 == 0)

if (max > (len / 2)) return "";//偶數個字元,某個字元的個數大於一半,就不過符合規則

if (max > (len / 2 + 1)) return "";//奇數個字元,某個字元的個數大於len / 2 + 1,就不過符合規則

var dicsort = from objdic in dic orderby objdic.value select objdic;//進行公升序排列

stringbuilder sb = new stringbuilder(len);

foreach (var item in dicsort)

return sb.tostring();

}

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 區間內。基本思路 貪心演算法,首先使用...