У меня был вопрос на собеседование, который попросил меня написать «отзыв» о куске кода, который написал младший программист. Они намекнули, что может быть проблема, и сказали, что они будут интенсивно использоваться на больших струнах.
public string ReverseString(string sz)
{
string result = string.Empty;
for(int i = sz.Length-1; i>=0; i--)
{
result += sz[i]
}
return result;
}
Я не мог определить это. Я не видел никаких проблем вообще.
Оглядываясь назад, я мог бы сказать, что пользователь должен изменить размер, но похоже, что C # не имеет изменения размера (я парень C ++).
Я закончил тем, что написал такие вещи, как использование итератора, если это возможно, [x] в контейнерах не может быть произвольного доступа, поэтому он может быть медленным. и разные вещи. Но я определенно сказал, что мне никогда не приходилось оптимизировать код на C #, поэтому моё мышление не подвело меня на собеседовании.
Я хотел знать, в чем проблема с этим кодом, вы, ребята, видите его?
-edit-
Я изменил это в вики, потому что может быть несколько правильных ответов.
Также я очень рад, что прямо сказал, что мне никогда не приходилось оптимизировать программу на C #, и упомянул разные вещи. К сожалению. Я всегда думал, что у C # не было проблем с производительностью такого рода вещей. упс.