Как проверить на палиндром, используя Python логика
Я'м пытаются проверить на палиндром с Python. Код у меня очень " за " -цикл интенсивной.
И мне кажется, самую большую ошибку делают люди, когда едут из C в Python пытается реализовать логику с использованием Python, который делает вещи медленно, и это's просто не язык.
Я смотрю на этот сайт. Поиск на "c-стиль для" Ну, что Python не'Т У с-стиль для петли. Может быть устаревшей, но я интерпретировать это означает, Python имеет свои собственные методы для этого.
Я'вэ пытался смотреть вокруг, я могу'т найти много актуальной (в Python 3) совет для этого. Как я могу решить палиндромом задача в Python, без использования цикла for?
Я'ве сделали это в C в класс, но я хочу сделать это в Python, на личной основе. Проблема с Проект Эйлера, отличный сайт, кстати.
def isPalindrome(n):
lst = [int(n) for n in str(n)]
l=len(lst)
if l==0 || l==1:
return True
elif len(lst)%2==0:
for k in range (l)
#####
else:
while (k<=((l-1)/2)):
if (list[]):
#####
for i in range (999, 100, -1):
for j in range (999,100, -1):
if isPalindrome(i*j):
print(i*j)
break
Я'м пропавших много кода здесь. Пять хэши просто напоминания для себя.
Конкретные вопросы:
-
В C, я хотел бы сделать для петли сравнение индекса 0 до индекса максимум, а затем индекса 0+1 С Max-1, пока что-то не то. Как лучше всего сделать это в Python?
-
Мой цикл for (В ассортименте (999, 100, -1), это плохой способ сделать это в Python?
-
У кого-нибудь есть дельный совет, или хорошие сайты, или ресурсы для людей в моем положении? Я'м не программист, я не'т стремится быть одна, я просто хочу узнать настолько, что когда я пишу свои бакалавр'ы степень дипломной работы (электротехника), я не'т придется одновременно изучать соответствующий язык программирования, при попытке получить хорошие результаты в проекте. "Как перейти от базового C до большое применение в Python" Ну и тому подобное.
-
Какие-либо конкретные фрагменты кода, чтобы сделать отличное решение этой проблемы также буду признателен, мне нужно узнать хорошие алгоритмы.. я приметила 3 ситуаций. Если значение равно нулю или одной цифры, если оно нечетной длины, а если даже длина. Я собиралась написать для петель...
ЗЫ: задача: найти максимальное значение продукта из двух 3-значных чисел, что также является палиндромом.
Типичный для Python способ определить, если данное значение является палиндромом:
Объяснение:
Н
равна перевернутое представление строкип
[::-1]
кусок заботится инвертирования строки==
Альтернативой довольно сложным
[::синтаксис -1]
это:В
обратной
функция возвращает обратную последовательность символов в "тест".''.присоединяйтесь к()
объединяет эти персонажи снова вместе с ничего между ними.Просто для записи, и для тех, кто ищет более алгоритмический способ проверить, если данная строка является палиндромом, два пути для достижения того же (через
А
идля
петли):И....второй:
Огромная часть Python-это вещи, которые вы можете делать с ним. Вы Don'т должны использовать индексы для строк.
Следующий будет работать (используя кусочки)
Что он делает, просто переворачивает N и проверяет, если они равны
. Н[::-1]
меняет городе N (-1 означает декремент)В связи с вышесказанным вы хотите использовать xrange вместо диапазона (потому что диапазон будет создать реальный список, а xrange-это быстрый генератор)
Мое мнение по вопросу 3
Я выучил C до Python, и я просто читаю документы, и играл вокруг с помощью консоли. (и решала задачи проект Эйлера как хорошо :)
Ниже код будет печатать 0 если это палиндром еще он будет печатать -1
Оптимизирован Код
Выход: 0
Выход: -1
Объяснение:
при поиске в строку значение, возвращаемое значение местоположения, что строка начинается на.
Поэтому, когда вы делаете слово.найти(слово[::-1])
находит
nepalapenна месте
0и
[::-1]переворачивает
nepalapenи еще
nepalapenна месте
0так
0` возвращается.Теперь, когда мы ищем
nepalapend
и затемnepalapend " до " dnepalapen
он делаетложные
заявлениеnepalapend
изменилась наdnepalapen
результате поиска не удалось найтиnepalapend в результате значение
-1`, который указывает строка не найдена.Другой метод печати правда если палиндром еще печать ложь
выход: Правда
Существует также функциональные путь:
Я знаю, что на этот вопрос ответил давно и я извинился за вторжение. Однако,я был способ сделать это в Python, и я просто думал, что я хотел бы поделиться то, что я сделал это следующим образом,
Существует намного более простой способ я нашел. Это'только линия 1.
Здесь без учета регистра функции, так как все вышеперечисленные решения являются чувствительными к регистру.
Эта функция будет возвращать логические значение.
делаю курс Watterloo для Python, одни и те же вопросы поднимают как-то "Lesseon" и найти здесь информацию:
http://cscircles.cemc.uwaterloo.ca/13-lists/
будучи новичком я решил проблему следующим образом:
Функция называется isPalindrome(С) и требует строку запах мяты,&; с&;. Возвращаемое значение по умолчанию правда, начальные проверить на первых, если заявление.
После этого цикл for работает на половину длины строки, чтобы проверить, если символ из строки и"Ы" ПО в должности "Я и" то же с передней и с задней. Если только это не тот случай, функция останавливается, печатает false и возвращает false.
Ура.кг
Если в строке прописной или неалфавитный символ, то функция преобразует все символы в нижний регистр и удаляет все не-алфавитные символы, используя регулярное выражение, наконец он применяется рекурсивно проверить палиндром:
выходными данными является значение true для ввода выше.
может быть, вы можете попробовать это:
Вы спрашиваете палиндром в Python. палиндромом может быть выполнена на строки, числа и списки. Однако, я просто написал простой код для проверки палиндрома строки.
Настоящий простой способ сделать это
И если/остальное здесь просто для фантазии выглядит. Вопрос о палиндром на Amazon'ы собеседовании для QA
Предполагая, что строка 'с'
Это типичный способ написания единой строчки кода
Я попытался с помощью этого:
и он работал некоторое количество, но я не'т знать, если строка
Это был вопрос в идеально сост 101, Глава 1. Дает 0 для палиндром дает -1 на нет. Его простой, и не использовать циклы.