Довольно просто, мне просто любопытно, как другие могут реализовать этот алгоритм, и хотел бы посмотреть, есть ли какие-нибудь хитрые приемы для оптимизации алгоритма ... Мне просто нужно было реализовать это для проекта, над которым я работаю.
Учитывая строку в CamelCase, как бы вы ее "spacification"?
например. учитывая FooBarGork Я хочу Foo Bar Gork назад.
Вот мой алгоритм в C #:
static void Main(string[] args)
{
Console.WriteLine(UnCamelCase("FooBarGork"));
}
public static string UnCamelCase(string str)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.Length; i++)
{
if (char.IsUpper(str, i) && i > 0) sb.Append(" ");
sb.Append(str[i]);
}
return sb.ToString();
}
Поскольку вам приходится посещать каждого персонажа по одному разу, я считаю, что лучшим вариантом является O (n). Как бы вы это реализовали?