-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStringAccumulator.cs
More file actions
33 lines (29 loc) · 936 Bytes
/
StringAccumulator.cs
File metadata and controls
33 lines (29 loc) · 936 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
using System.Collections.Generic;
using System.Linq;
// https://www.sololearn.com/Discuss/687819/?ref=app
namespace SoloLearn
{
class Program
{
static void Main(string[] zephyr_koo)
{
foreach (var str in new string[]
{
"abc", "ECxa", "XmkkucH", "SoloLearN", "QpYWffvYGGyaX"
})
{
Console.WriteLine(str);
Console.WriteLine(GetAccumulatedString(str) + Environment.NewLine);
}
}
static string GetAccumulatedString(string str)
{
str = str.ToLower(); // optimize for repetitive usage of char.ToLower(c) in Enumerable.Repeat
return string.Join("-", str.Select(
(c, i) => c.ToString().ToUpper() +
new string(Enumerable.Repeat(c, i).ToArray())
));
}
}
}