Преамбула
У розмітці Stack Exchange ми використовуємо ** для підкреслення тексту. Наприклад, це відмітка:
The **quick brown fox jumps over the lazy** dog.
Відображається як:
Булки через ледачу собаку.
Звичайно, ми використовуємо **, щоб закрити сміливість. Так менше відповіді буде сміливим. Наприклад:
The **quick** brown fox jumps over the **lazy** dog.
Відображається як:
Швидко коричнева лисиця перестрибує через ледачу собаку.
Однак, якщо зухвалість не закрите, він робить , як не жирний :
The **quick brown fox jumps over the lazy dog.
Відображається як:
** швидка бура лисиця перестрибує над ледачим собакою.
Якщо текст має одну зворотну косу рису \, сміливість не набуває чинності:
The \**quick brown fox jumps over the lazy dog.**
Відображається як:
** швидка бура лиса перестрибує через ледачого собаку. **
Пробіл із білим пробілом призводить до неміцного тексту (зверніть увагу, пробіл після коричневого - це одна вкладка):
The** quick** brown fox jumps over the lazy dog.**
Відображається як:
** швидкий ** бурий лис перестрибує над ледачим собакою. **
Ми також можемо використовувати __ для жирних, також, але зауважте, що одночасно може бути активним лише один. Ось більш складний приклад:
The __quick**__ brown **fox__ jumps** over__ the__ lazy **dog.
Відображається як:
Швидко ** коричневий fox__ стрибка over__ the__ ледачого ** собаки.
Питання:
Ви можете написати програму або функцію, даний текст ASCII або в якості Stringаргументу або на STDIN, де тільки спеціальні символи **, __, \(для виходу) і кінцеві прогалини, визначити , скільки символів напівжирний є. Це значення слід надрукувати в STDOUT або повернути з вашої функції. Вам не потрібно підтримувати дуже довгі рядки; Гарантована довжина рядка не більше 30K, що є обмеженням для публікації стека.
Дрібний шрифт:
- Чи можу я викинути виняток / іншу помилку для одного випадку та повернутись нормально для іншого?
- Ні. Це повинно бути або чітким, однозначним, непомилковим значенням повернення для обох випадків. Вихід STDERR буде ігнорований.
- Чи пробіли між словами вважаються жирними?
- Так.
**quick brown**в ньому є 11 жирних символів.
- Так.
- Чи слід рахувати
\в\**, якщо жирним шрифтом?- Ні. Він відображається як **, тож якщо його слід виділити жирним шрифтом, він буде мати лише два символи.
- Будьте абсолютно зрозумілі: що ви маєте на увазі під кількістю символів?
- Усього символів, які відображатимуться жирним шрифтом. Це означає, що
**він не відображається, якщо він перетворює текст, але він надається, якщо він не робить. - Зауважте, що можна зробити
**жирним шрифтом декілька способів, наприклад**\****-> ** . - Не враховуйте можливість того, що якийсь текст може бути перетворений курсивом. Тільки уцінки правило розглянути ** = напівжирний *.
- Усього символів, які відображатимуться жирним шрифтом. Це означає, що
- На Stack Exchange працює і HTML Bold. тобто <b> </b>
- Так, я знаю. Не враховуйте цей випадок, це звичайний текст.
- Що з HTML-елементами? наприклад
<-><- Вони також повинні розглядатися як звичайний текст, немає перетворення сутності HTML.
- Я придумав приклад, якого ви не наводили вище!
- Правила функціонують точно так, як якщо б текст був розміщений на Stack Exchange у відповіді (а не коментарі), за винятком того, що кодові блоки не вважаються спеціальними символами . Як чотири типу простору, так і тип backtick. Якщо ви не впевнені в тому, як слід викладати текст, просто киньте його у поле відповідей десь як тест, це правила, яких слід дотримуватися.
Приклади:
Вхід:
The **quick brown fox jumps over the lazy** dog.
Вихід:
35
Вхід:
The **quick brown fox jumps over the lazy dog.
Вихід:
0
Вхід:
The __quick**__ brown **fox__ jumps** over__ the__ lazy **dog.
Вихід:
18
Вхід:
The __quick\____ brown fox **jumps over\** the** lazy \**dog.
Вихід:
23
Вхід:
The****quick brown fox****jumps over **the****lazy** dog.
Вихід:
11
Стандартні лазівки заборонені.
**fox__ jumps**припиняє саме цю напівжирність .
\**або \__є екранують послідовності трьох символів, але в StackExchange є тільки керуючі послідовності двох символів \*або \_. Так \***a**виходить зірочка, за якою слідує жирний шрифт a. Існує також ще один пагін, \\ . Чи повинні ми впоратися з цим?
18правильно для третього тестового випадку?