Я готовлюсь к собеседованию.Допустим, я хочу удалить повторяющиеся буквы из строки. Для этого я предложил две функции:
# option 1:
def checkDuplicates(string):
postCheck = ""
previousChar = None
for currentChar in string:
if currentChar != previousChar:
postCheck += currentChar
previousChar = currentChar
return postCheck.title()
# option 2:
def checkDuplicates2(string):
scanned = set()
postCheck = ""
for currentChar in string:
if currentChar not in scanned:
scanned.add(currentChar)
postCheck += currentChar
return postCheck.title()
Тестирование:
>>> print(checkDuplicates("llaatteerr")
Later
>>> print(checkDuplicates2("llaatteerr")
Later
Теперь, допустим, я хочу сделатьто же самое, но в цепочке слов, где я должен перебирать каждое слово в строке.Если в слове есть дубликаты, удалите дублирующий символ.Если второе слово содержит символы, видимые в первом, это не имеет значения - каждое слово имеет свой регистр.Так, например:
>>> checkDup("llaatteerr tthhoouugghhtt")
Later Thought
Итак, для этого я создал вторую функцию:
def checkDupInWords(words):
postCheck = ""
for word in words.split():
postCheck += f"{checkDuplicates(word)} "
return postCheck
test:
>>>print(checkDupInWords("llaatteerr llaatteerr llaatteerr"))
Later Later Later
Теперь мой вопросЧто, если одно слово содержит повторяющиеся буквы, и они являются значимыми дубликатами (например, «Леонардо»). Является ли эта задача выполнимой и заслуживающей выполнения в краткосрочной перспективе?Или это что-то, что требует знания лингвистики и использования внешних библиотек?
Дополнительный вопрос: кто-нибудь скажет, что можно встретиться с такой задачей во время собеседования или на обычной работе разработчика программного обеспечения (я думаю, что это возможно, еслито, с чем вы работаете, это проект для языка или что-то в этом роде.) Любое понимание приветствуется!