возвращение размещения последнего символа вместо первого с помощью find () - PullRequest
0 голосов
/ 29 апреля 2020

Я работаю над программой для школьного проекта, которая должна работать как поиск слова. Нам нужно найти слово (или слова) в строке и напечатать, где оно находится в строке. кажется достаточно легким Вот пример:

yew = "hello"
myString = "alskdfjhelloadskjf"
print(myString.find(yew))

Это печатает 7, как и ожидалось. Мой профессор также хочет, чтобы мы могли найти слова, обратные, вот пример моего кода, который также работал

myString = "alskdfjollehadskjf"
print(myString.find(yew[::-1]))

Это также печатает 7, однако, мой профессор хочет, чтобы программа печатала размещение первой буквы в слове, поэтому в этом случае я хочу напечатать 11. До сих пор я нашел единственный способ решить эту проблему:

print(myString.find(yew[::-1]) + len(yew) - 1) # prints 11

Есть ли более эффективный способ сделать это, чего я не вижу? или альтернатива find() вы думаете, лучше подойдет этой программе? Спасибо!

edit: есть ли способ написать это в более сжатой форме *, не обязательно более эффективный, потому что, как мы видим, он работает нормально. извините за не уточнение

1 Ответ

1 голос
/ 29 апреля 2020

Не думаю, что с вашей реализацией что-то не так; на самом деле, это было первое, о чем я подумал, прежде чем увидел ваше решение. Совершенно понятно, что если вы хотите найти позицию последнего символа в слове, вы найдете его в len(word) - 1. Похоже, ты справился!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...