Хотя использование встроенных ++
и --
операторов в следующих может показаться умным:
while (i >= 0 && places[j++] == places[--i]) {
}
ваш код будет легче читать, если вы поместите эти в циклbody:
while (i >= 0 && places[j] == places[i-1]) {
j++;
i--;
}
Таким образом, читателю кода не придется думать о возможных побочных эффектах изменения значений i
и j
в условном тесте.Вероятно, не будет ощутимого влияния на скорость скомпилированного кода (хотя, если производительность важна для этой функции, вы должны проверить это с вашим компилятором).
Также у вас есть ошибка, из-за которойдоступ places[-1]
, если i == 0
.