Я ледачий, але ефективний чоловік, як багато з вас, напевно, також є. Тож, коли я щось роблю, я хочу це робити з мінімальними зусиллями. Саме тому я прошу вас вирішити цю проблему для мене.
Я маю тут своєрідний документ. У кожному рядку цього документа є одне слово або коротка фраза. Документ не сортований, але це нормально, я знаю, де все. Я міг би скористатися деякою допомогою для швидшого пошуку речей, і для цього мені потрібен другий список. Тут ви заходите. Для кожного рядка тексту в цьому документі мені потрібен ідентифікатор. Щось я можу CTRL+ F, але це не може бути довше, ніж абсолютно необхідне для отримання одного результату.
Приклад введення:
(blank)
an apple
spiderman 3
7pm pick up laundry
tequila
fake mustache
dishes on wednesday
banana
biscuits
(blank)
Приклад виводу:
ap,3,7,q,f,w,ba,bi
Я повторюсь тут, щоб переконатися, що ми на одній сторінці:
- Вхід - це неформатований текстовий файл, що містить перелік елементів, розділених перервами рядків. У мене він є у форматі .txt, він називається "STUFF.TXT"
- Перший і останній рядок документа порожні. Кожен інший рядок містить запис довжини> 0.
- Файл містить лише алфавітно-цифрові символи (всі малі регістри), пробіли та розриви рядків.
- Бажаний вихід - це список ідентифікаторів, у тому ж порядку, що і мій вихідний список.
- Я не хочу більше ніж одне слово пошуку для кожного елемента списку. Якщо відповіді є кілька, виберіть одну, мені все одно. У наведеному вище прикладі я вибрав "ap" для
an apple
, але ви могли вибрати "n", "a", "pp", "pl" або "le". Не "а", тому що це вbanana
. - Можу запевнити, що файл ніколи не порожній, і він ніколи не містить дублікатів.
- При необхідності можна відповідати на лінійний термінатор. Але це остання можливість використовувати лише тоді, коли немає іншого способу розрізнити елементи списку (наприклад, "яблуко" та "яблука").
Стандартні лазівки заборонені. Крім того, це код гольфу, тому найкоротший виграш коду.
Ще один приклад:
(blank)
ban
any
king
bean
yen
rake
raki
bar
(blank)
І його вихід:
ban,ny,g,be,ye,ke,aki,ar