Preambuła
W wycenie stosu wymiany używamy ** do pogrubienia tekstu. Na przykład to przecena:
The **quick brown fox jumps over the lazy** dog.
Renderuje jako:
Szybki brązowy lis przeskoczył nad leniwym psem.
Oczywiście używamy ** również do zamykania odwagi. Więc mniej odpowiedzi będzie odważne. Na przykład:
The **quick** brown fox jumps over the **lazy** dog.
Renderuje jako:
Szybkie brązowy lis przeskoczył nad leniwym psem.
Jeśli jednak pogrubienie nie zostanie zamknięte, zostanie wyświetlone jako pogrubione :
The **quick brown fox jumps over the lazy dog.
Renderuje jako:
** Szybki brązowy lis przeskakuje nad leniwym psem.
Jeśli tekst ma pojedynczy odwrotny ukośnik \, śmiałość nie działa:
The \**quick brown fox jumps over the lazy dog.**
Renderuje jako:
** szybki brązowy lis przeskakuje nad leniwym psem. **
Końcowa biała spacja powoduje, że tekst nie jest pogrubiony (uwaga, biała spacja po brązie to pojedyncza karta):
The** quick** brown fox jumps over the lazy dog.**
Renderuje jako:
** szybki ** brązowy lis przeskakuje nad leniwym psem. **
Możemy również użyć __ dla pogrubienia, ale pamiętaj, że tylko jeden może być aktywny na raz. Oto bardziej skomplikowany przykład:
The __quick**__ brown **fox__ jumps** over__ the__ lazy **dog.
Renderuje jako:
Szybkie ** brązowy fox__ skacze over__ the__ leniwe ** psa.
Pytanie:
Można napisać program lub funkcję, podany tekst ASCII albo jako Stringargumentu lub standardowego wejścia, gdzie tylko znaki specjalne **, __, \(dla ucieczki) i końcowe białe znaki, ustalić, ile znaków są pogrubione. Ta wartość powinna być wydrukowana do STDOUT lub zwrócona z twojej funkcji. Nie musisz obsługiwać bardzo długich łańcuchów; Długość łańcucha nie może być większa niż 30K, co stanowi limit dla postu wymiany stosu.
Drobnym drukiem:
- Czy mogę zgłosić wyjątek / inny błąd dla jednej sprawy i wrócić normalnie dla drugiej?
- Nie. Musi to być wyraźna, jednoznaczna, nieskomplikowana wartość zwracana w obu przypadkach. Dane wyjściowe STDERR zostaną zignorowane.
- Czy spacje między słowami są uważane za pogrubione?
- Tak.
**quick brown**ma w nim 11 pogrubionych znaków.
- Tak.
- Gdyby
\w\**razie pogrubienie, liczone?- Nie. Renderuje się jako **, więc jeśli powinien być pogrubiony, miałby tylko 2 znaki.
- Wyjaśnij całkowicie: co rozumiesz przez liczbę znaków?
- Wszystkie znaki, które byłyby pogrubione. Oznacza to, że nie
**jest renderowany, jeśli przekształca tekst, ale jest renderowany, jeśli nie. - Pamiętaj, że
**pogrubienie można wykonać na kilka sposobów, np.**\****-> ** . - Nie bierz pod uwagę możliwości konwersji niektórych tekstów na kursywę. Tylko Przecena reguła do rozważenia jest ** = pogrubiony *.
- Wszystkie znaki, które byłyby pogrubione. Oznacza to, że nie
- Na stosie wymiany działa również pogrubienie HTML. tj. <b> </b>
- Tak, jestem tego świadomy. Nie bierz tego pod uwagę, to zwykły tekst.
- Co z kodami HTML? np.
<-><- Te również należy traktować jako zwykły tekst, nie ma konwersji encji HTML.
- Pomyślałem o przykładzie, którego nie opisałeś powyżej!
- Reguły działają dokładnie tak, jakby tekst został opublikowany na Stack Exchange, w odpowiedzi (nie w komentarzu), z tym wyjątkiem, że bloki kodu nie są uważane za znaki specjalne . Zarówno typ czterech spacji, jak i backtick. Jeśli nie masz pewności, jak tekst powinien być renderowany, po prostu wrzuć go gdzieś jako pole odpowiedzi, są to zasady, których należy przestrzegać.
Przykłady:
Wejście:
The **quick brown fox jumps over the lazy** dog.
Wynik:
35
Wejście:
The **quick brown fox jumps over the lazy dog.
Wynik:
0
Wejście:
The __quick**__ brown **fox__ jumps** over__ the__ lazy **dog.
Wynik:
18
Wejście:
The __quick\____ brown fox **jumps over\** the** lazy \**dog.
Wynik:
23
Wejście:
The****quick brown fox****jumps over **the****lazy** dog.
Wynik:
11
Standardowe luki są zakazane.
**fox__ jumps**kończy pogrubienie.
\**lub \__są to trzyznakowe sekwencje specjalne, ale w StackExchange są tylko dwuznakowe sekwencje specjalne \*lub \_. \***a**Tworzy więc gwiazdkę, a następnie pogrubienie a. Istnieje również inny ucieczka, \\ . Czy powinniśmy sobie z tym poradzić?
18poprawny dla trzeciego przypadku testowego?