Коли ви шукаєте щось у Google , він зручно надсилає повідомлення у верхній частині сторінки, в якому йдеться про щось подібне About 53,000,000 results (0.22 seconds)
. (Цифри змінюються залежно від того, що шукали, звичайно.)
У цьому виклику ви напишете програму, яка малює логарифмічний графік ASCII кількості результатів, наданих Google, коли шукаються всі непусті префікси даної пошукової фрази .
Пошук фраза визначається як одна або більше рядків малих буквено - цифрових символів, відокремлених одним пропуском один від одного. У Regex пошукова фраза є (?:[a-z0-9]+ )*[a-z0-9]+
.
Таким чином im ok
, r
і 1a 2
все пошукові фрази, але I'm OK
, R
, 1a 2
і , не є.
(Обмеження щодо символів існують, оскільки Google рідко враховує регістри чи спеціальні символи. Уникнення нелітерно-цифрових символів у URL-адресах також є клопотом.)
Спец
Ваша програма повинна містити фразу пошуку та позитивне число H з плаваючою точкою або з stdin, або з командного рядка. (Ви можете припустити, що вони дійсні, і це добре, якщо вам потрібні цитати чи щось навколо пошукової фрази.)
В якості робочого прикладу припустимо, що пошукова фраза є a car
і H = 0,75.
Крок 1.
Зберіть не порожні префікси пошукової фрази та поставте їх у подвійні лапки . Цитати гарантують, що буде шукано точну фразу, уникаючи перенаправлень "ви мали на увазі ..." .
Виключіть усі префікси, які закінчуються в просторі, такому як a[space]
.
Prefixes
"a"
"a c"
"a ca"
"a car"
Крок 2:
Шукайте кожен із цих термінів точно так, як вони відображаються, використовуючи https://www.google.com , і зазначте кількість результатів, що повертаються.
Search Term Message Results
"a" About 6,950,000,000 results (0.27 seconds) 6950000000
"a c" About 861,000,000 results (0.27 seconds) 861000000
"a ca" About 2,990,000 results (0.30 seconds) 2990000
"a car" About 53,900,000 results (0.39 seconds) 53900000
Якщо пошуковий термін не відповідає жодним документам , введіть 0 у Results
стовпчик.
Крок 3:
Обчисліть y = floor(H * log10(r + 1))
для кожного рядка, де r - Results
значення. Тут все ще 0,75.
Search Term Results y
"a" 6950000000 7
"a c" 861000000 6
"a ca" 2990000 4
"a car" 53900000 5
Крок 4:
Впорядкуйте y
кількість вертикальних смуг ( |
) над останнім символом кожного котируваного пошукового терміну, використовуючи пробіли для заповнення порожніх областей, у вигляді своєрідної гістограми.
|
| |
| | |
| |||
| |||
| |||
| |||
a car
Цей графік є кінцевим результатом вашої програми і єдиним, що потрібно для виведення. Він повинен перейти до stdout.
Оцінка балів
Це є код-гольф, тому виграє найкоротша програма в байтах .
Примітки
- Ви можете використовувати скорочувачі URL-адрес або інші інструменти пошуку / API, якщо результати будуть такими ж, як пошук на https://www.google.com .
- Я знаю, що подвійні лапки не є надійним способом виключити "ви мали на увазі ..." переадресації. Додавання
&nfpr=1
до URL-адреси також не завжди працює . Не турбуйтеся про ці неточності. Просто шукайтеAbout X results...
повідомлення незалежно від того, що з'являється, або встановітьResults
значення 0, якщо такого немає. - У пошуковій фразі на графіку є порожній стовпчик над будь-яким пробілом.
- Графік не повинен бути ширшим або вищим, ніж потрібно (наприклад, з пробілом).
- Це нормально, якщо у вашій програмі є такі побічні ефекти, як відкриття веб-браузера, щоб криптовані html / js сторінки Google можна було прочитати під час їх відображення.