Только что провалил задание по программированию для собеседования и теперь ломаю голову. Как можно выполнить эту задачу?
Для заданной строки s длины n задача состоит в том, чтобы найти длину самой короткой подстроки, которая после удаления приводит к тому, что результирующая строка состоит только из отдельных символов.
Вот мой полный провал кода, на который у меня не хватило времени... Я хотя бы шел по правильному пути?
from collections import Counter
def findShortestSubstring(s):
char_freq = Counter(s)
targets = {char for char, idx in char_freq.items() if idx > 1}
if not targets:
return 0
min_len = float('inf')
left = 0
window_counts = Counter()
for right, char in enumerate(s):
if char in targets:
window_counts[char] += 1
while all(window_counts[char] > 0 for char in targets):
min_len = min(min_len, right - left + 1)
if s[left] in targets:
window_counts[s[left]] -= 1
left += 1
return min_len
optimized_test_results = {
"aabbcc": findShortestSubstring("aabbcc"),
"abcabc": findShortestSubstring("abcabc"),
"abcd": findShortestSubstring("abcd"),
"abba": findShortestSubstring("abba"),
"aaaabbbbcccc": findShortestSubstring("aaaabbbbcccc"),
"abcabcabc": findShortestSubstring("abcabcabc"),
"aabacbebebe": findShortestSubstring("aabacbebebe"),
"aabc": findShortestSubstring("aabc"),
"abcdefghijklmnopqrstuvwxyz": findShortestSubstring("abcdefghijklmnopqrstuvwxyz"),
"aaaaaaaaaaaaaaaaaaaaaaaa": findShortestSubstring("aaaaaaaaaaaaaaaaaaaaaaaa")
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... lting-in-a
Найдите длину кратчайшей подстроки, которую можно удалить из строки, что приведет к уникальности ⇐ Python
Программы на Python
1765710175
Anonymous
Только что провалил задание по программированию для собеседования и теперь ломаю голову. Как можно выполнить эту задачу?
Для заданной строки s длины n задача состоит в том, чтобы найти длину самой короткой подстроки, которая после удаления приводит к тому, что результирующая строка состоит только из отдельных символов.
Вот мой полный провал кода, на который у меня не хватило времени... Я хотя бы шел по правильному пути?
from collections import Counter
def findShortestSubstring(s):
char_freq = Counter(s)
targets = {char for char, idx in char_freq.items() if idx > 1}
if not targets:
return 0
min_len = float('inf')
left = 0
window_counts = Counter()
for right, char in enumerate(s):
if char in targets:
window_counts[char] += 1
while all(window_counts[char] > 0 for char in targets):
min_len = min(min_len, right - left + 1)
if s[left] in targets:
window_counts[s[left]] -= 1
left += 1
return min_len
optimized_test_results = {
"aabbcc": findShortestSubstring("aabbcc"),
"abcabc": findShortestSubstring("abcabc"),
"abcd": findShortestSubstring("abcd"),
"abba": findShortestSubstring("abba"),
"aaaabbbbcccc": findShortestSubstring("aaaabbbbcccc"),
"abcabcabc": findShortestSubstring("abcabcabc"),
"aabacbebebe": findShortestSubstring("aabacbebebe"),
"aabc": findShortestSubstring("aabc"),
"abcdefghijklmnopqrstuvwxyz": findShortestSubstring("abcdefghijklmnopqrstuvwxyz"),
"aaaaaaaaaaaaaaaaaaaaaaaa": findShortestSubstring("aaaaaaaaaaaaaaaaaaaaaaaa")
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78364596/find-length-of-shortest-substr-that-can-be-removed-from-a-string-resulting-in-a[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия