Skip to content

Commit

Permalink
Merge pull request #3121 from dmitry-ivashenko/1370-increasing-decrea…
Browse files Browse the repository at this point in the history
…sing-string

Create 1370-increasing-decreasing-string.cs
  • Loading branch information
tahsintunan committed Dec 7, 2023
2 parents 8f64e9b + ee18def commit e18fac8
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions csharp/1370-increasing-decreasing-string.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
public class Solution {
public string SortString(string s) {
var charCounts = new Dictionary<char, int>();

foreach (var ch in s) {
if (charCounts.ContainsKey(ch)) {
charCounts[ch]++;
} else {
charCounts[ch] = 1;
}
}

var sortedKeys = charCounts.Keys.ToList();
sortedKeys.Sort();

var pattern = string.Concat(sortedKeys) + string.Concat(sortedKeys.AsEnumerable().Reverse());
var maxItem = charCounts.Values.Max();
var sample = string.Concat(Enumerable.Repeat(pattern, (maxItem / 2) + 1));

var result = "";

foreach (var ch in sample) {
if (charCounts.ContainsKey(ch) && charCounts[ch] > 0) {
result += ch;
charCounts[ch]--;
}
}

return result;
}
}

0 comments on commit e18fac8

Please sign in to comment.