Step 6 (S-14674)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/3367/step/6

S-14674-1.png

В принципе, в нашем решении, в цикле, в условии if можно было поставить оператор break, для случая, когда мы нашли пару различающихся символов. И досрочно завершить цикл. Дальнейшую проверку можно было бы не проводить, так как, мы уже убедились в том, что данная строка палиндромом не является. На некоторых строках, при такой реализации, программа будет работать быстрее.

S-14674-2.png

Есть еще один способ решить эту задачу. Выглядит он так:

S-14674-3.png

Идея заключается в следующем. Используя механизм срезов, получим "перевернутую" строку и поместим ее в переменную r. Далее просто сравним полученную строку с изначальной строкой и в случае равенства выведем YES. В противном случае - NO.

Данное решение короче. Но оно имеет один недостаток, дело в том, что нам приходится использовать дополнительную память для хранения новой строки.