এই পোস্টটি কত সাহসী?


13

প্রস্তাবনা

স্ট্যাক এক্সচেঞ্জ মার্কডাউনে, আমরা পাঠ্যকে গা bold় করতে করতে ** ব্যবহার করি। উদাহরণস্বরূপ, এই চিহ্নিতকরণ:

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, যেখানে শুধুমাত্র বিশেষ অক্ষর উপর **, __, \, (পলায়নের জন্য) এবং trailing হোয়াইটস্পেস নির্ধারণ আছে কত সাহসী অক্ষর। এই মানটি STDOUT এ মুদ্রিত করা উচিত বা আপনার ফাংশন থেকে ফিরে আসতে হবে। আপনার খুব দীর্ঘ স্ট্রিং সমর্থন করার প্রয়োজন নেই; স্ট্রিং দৈর্ঘ্য এর চেয়ে বেশি না হওয়ার গ্যারান্টিযুক্ত 30Kযা স্ট্যাক এক্সচেঞ্জের পোস্টের সীমা।

সূক্ষ্ম মুদ্রণ:

  • আমি কি একটি মামলার জন্য ব্যতিক্রম / অন্য ত্রুটি ফেলে দিতে পারি এবং অন্যটির জন্য সাধারণত ফিরে আসতে পারি?
    • না। এটি উভয় ক্ষেত্রেই স্পষ্ট, দ্ব্যর্থহীন, অ-ত্রুটিযুক্ত রিটার্ন মান হতে হবে। STDERR আউটপুট উপেক্ষা করা হবে।
  • শব্দের মধ্যবর্তী ফাঁকগুলিকে কি সাহসী মনে করা হয়?
    • হ্যাঁ. **quick brown**এটিতে 11 সাহসী চরিত্র রয়েছে।
  • করা উচিত \মধ্যে \**, যদি সাহসী, গণনা করা?
    • এটি ** হিসাবে রেন্ডার করে, তাই যদি এটি গা .় করা হয় তবে এটি কেবলমাত্র 2 টি অক্ষর।
  • সম্পূর্ণ পরিষ্কার হয়ে উঠুন: কয়টি চরিত্র বলতে বোঝায়?
    • মোট অক্ষর যা সাহসী রেন্ডার হবে। এর অর্থ এটি পাঠ্যকে রূপান্তরিত করে যদি রেন্ডার** হয় না তবে এটি রেন্ডার করা হয় যদি তা না হয়।
    • মনে রাখবেন করতে সম্ভব **, বিভিন্নভাবে বোল্ড করা যেমন **\****-> **
    • কিছু পাঠ্য তাত্ক্ষণিকভাবে রূপান্তরিত হতে পারে এমন সম্ভাবনাটি বিবেচনা করবেন না। শুধুমাত্র markdown নিয়ম বিবেচনা করা হয় ** = সাহসী *।
  • স্ট্যাক এক্সচেঞ্জে, এইচটিএমএল বোল্ডও কাজ করে। যেমন <b> </b>
    • হ্যাঁ, আমি সচেতন। এই ক্ষেত্রে বিবেচনা করবেন না, এটি সাধারণ পাঠ্য।
  • এইচটিএমএল এনটাইট সম্পর্কে কি? যেমন &lt;-><
    • এগুলিকেও সাধারণ পাঠ্য হিসাবে বিবেচনা করা উচিত, কোনও HTML সত্তার রূপান্তর নেই।
  • আমি একটি উদাহরণ ভেবেছি আপনি উপরে আবরণ করেন নি!
    • নিয়মগুলি হুবহু এইভাবে কাজ করে যে লেখাটি স্ট্যাক এক্সচেঞ্জে পোস্ট করা হয়েছিল, একটি উত্তরে (কোনও মন্তব্য নয়), কোড ব্লকগুলি বিশেষ অক্ষর হিসাবে বিবেচনা করা হয় না । চারটি স্পেস টাইপ এবং ব্যাকটিক টাইপ উভয়ই। পাঠ্য কীভাবে রেন্ডার করা উচিত সে সম্পর্কে আপনি যদি নিশ্চিত না হন তবে এটি পরীক্ষা হিসাবে কোথাও একটি উত্তর বাক্সে ফেলে দিন, সেই নিয়মগুলি যা আপনার অনুসরণ করা উচিত are

উদাহরণ:

ইনপুট:

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

স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ করা হয়েছে।


কি 18তৃতীয় টেস্টে ক্ষেত্রে জন্য সঠিক?
বিটা ক্ষয়

@ বেটাডেকে এটি 7 + ১১. এটি কী হওয়া উচিত বলে আপনি মনে করেন?
durron597

আমি 28 পেয়ে যাচ্ছি ... আমি আমার প্রোগ্রামটি সন্ধান করব
বিটা ডেকে

@ বেটাডেকে **fox__ jumps**সেই নির্দিষ্ট বোল্ডিংটি সমাপ্ত করে।
durron597

1
প্রশ্ন সুপারিশ বলে মনে হয় \**বা \__তিন-অক্ষর পালাবার ক্রম, কিন্তু StackExchange মধ্যে মাত্র দুটি-অক্ষর পালাবার ক্রম আছে \*বা \_। সুতরাং \***a**একটি তীরচিহ্ন উত্পাদন করে যার পরে সাহসী হয় a। আরও একটি পালাতে হবে \\ ,। আমাদের কি এটি পরিচালনা করা উচিত?
শুক্রবার

উত্তর:


5

আরএস , 107 বাইট

\t/ 
(?<!\\)((\*|_){2})((?=\S)(?!\2)(\\\2|.)*?)?(?<=\S)\1/(\n)^^((^^\3))\3
\\(\*|_)/\t
[^\t\n]/
\n/_
\t_?/
(_*)/(^^\1)

লাইভ ডেমো এবং পরীক্ষার কেস।

এটি একটি সুন্দর পাগল ... জিনিস।

নতুনতম পরীক্ষার কেসটি এখনও কাজ করে না। WIP ...

ব্যাখ্যা

\t/ 

স্পেস দিয়ে ট্যাবগুলি প্রতিস্থাপন করুন। তাদের একই অক্ষর গণনা রয়েছে, এবং ট্যাবগুলি পরে বিশেষ চরিত্র হিসাবে ব্যবহৃত হয়।

(?<!\\)((\*|_){2})((?=\S)(?!\2)(\\\2|.)*?)?(?<=\S)\1/(\n)^^((^^\3))\3

মূল পাঠ্যের পরে নতুন লাইনের Nসাথে সাহসিকতার সাথে যুক্ত হওয়া দৈর্ঘ্যের কোনও পাঠ্য প্রতিস্থাপন Nকরুন।

\\(\*|_)/\t

একটি স্ল্যাশ দ্বারা তাত্ক্ষণিকভাবে ডিলিমিটারের কোনও ঘটনাকে একটি ট্যাব দিয়ে প্রতিস্থাপন করুন। এটি নিশ্চিত করা যায় যে এন্ট্রিগুলির মতো **a\***3 এর পরিবর্তে 2 এর চরিত্র গণনা রয়েছে।

[^\t\n]/

ট্যাব বা নিউলাইন নয় এমন কোনও অক্ষর মুছে ফেলুন।

\n/_

আন্ডারস্কোর দিয়ে সমস্ত নতুনলাইন প্রতিস্থাপন করুন।

\t_?/

যে কোনও ট্যাব সরিয়ে ফেলুন (যেগুলি পালিয়ে যাওয়া ডিলিমিটর উপস্থাপন করে) এবং সেগুলি অনুসরণ করতে পারে এমন কোনও আন্ডারস্কোরও। এটি পালিয়ে যাওয়া সমাপ্তি ডিলিমিটারগুলির সাথে চরিত্রের গণনার উপরের ইস্যুর সাথে সম্পর্কিত।

(_*)/(^^\1)

আন্ডারস্কোর ক্রমটি তার দৈর্ঘ্যের সাথে প্রতিস্থাপন করুন। এই চরিত্র গণনা।


**a****b**ফলাফল 2, এটি 6 হওয়া উচিত be দেখুন: একটি **** খ
durron597

1
@ durron597 এটি কীভাবে কাজ করবে বলে আমি খানিকটা বিভ্রান্ত। আপনি একটি ব্যাখ্যা যোগ করতে পারেন?
kirbyfan64sos 21

যেমনটি আমি বলেছিলাম, উত্তর প্যানে এটিকে নিয়ে চারপাশে খেলুন। **** সর্বদা কেবল তারকাচিহ্ন, যা অন্য পাঠ্যের উপর ভিত্তি করে সাহসের ভিতরে বা কোনও সাহসের ভিতরে থাকতে পারে না।
durron597

সুতরাং, @ kirbyfan64sos, কিভাবে সাহসী হয় পোস্টে?
mbomb007

2

পাইথন: 133 টি অক্ষর

import re
f=lambda s:sum(len(x[0])-4for x in re.findall(r'(([_*])\2\S.*?\2\2+)',re.sub(r'([_*])\1\1\1','xxxx',re.sub(r'\\.','x',s))))

এটি পাইথন 2 এবং 3 উভয় ক্ষেত্রে অভিন্নভাবে কাজ করা উচিত ফাংশনটি fস্ট্যাক ওভারফ্লোর মার্কডাউন সিস্টেম দ্বারা ফর্ম্যাট করার সময় যে স্ট্রিংয়ের মধ্যে থাকবে সেগুলিতে থাকা কতগুলি সাহসী অক্ষরের সংখ্যা দেয়।

আমি মনে করি আমি বেশিরভাগ কর্নারের কেসগুলি সঠিকভাবে পেয়েছি (এখন পর্যন্ত মন্তব্যে উল্লিখিত সমস্তগুলি সহ) তবে এটি এখনও সম্পূর্ণ নিখুঁত নয়। আমি বুঝতে পারি না কেন x***x**গা *xbold়ভাবে (যেমনটি ***x**) রেন্ডার করে না , তাই আমার কোডটি কমপক্ষে কয়েকটি ইনপুট ভুল পেয়ে যাবে get

কোডটির চারটি প্রধান পদক্ষেপ রয়েছে। প্রথমটি কোনও ব্যাকস্ল্যাশের সাথে একটি রেজেক্স্স প্রতিস্থাপন করে তারপরে কোনও 'x' অক্ষরযুক্ত অক্ষরকে অনুসরণ করে। দ্বিতীয় ধাপে চারটি অ্যাসেরিক্স বা আন্ডারস্কোরের কোনও ক্রমকে চারটি 'x' অক্ষর দ্বারা প্রতিস্থাপন করা হয়। তৃতীয় ধাপটি findallসমস্ত ব্লককে ইটালিকাইজ করা হবে এটি সন্ধান করতে একটি রেজেক্স ব্যবহার করে। চূড়ান্ত পদক্ষেপটি একটি sumকলের অভ্যন্তরে একটি জেনারেটর এক্সপ্রেশন , যা এই ব্লকের দৈর্ঘ্য যোগ করে, প্রতিটি থেকে চারটি অক্ষর বিয়োগ করে, যেহেতু আমরা আমাদের গণনাতে সীমানা যুক্ত করতে চাই না।

এখানে কিছু পরীক্ষার ফলাফল রয়েছে:

>>> f('The **quick brown fox jumps over the lazy** dog.')
35
>>> f('The **quick brown fox jumps over the lazy dog.')
0
>>> f('The \**quick brown fox jumps over the lazy dog.**')
0
>>> f('The** quick** brown fox jumps over the lazy dog.**')
0
>>> f('The __quick\____ brown fox **jumps over\** the** lazy \**dog.')
23
>>> f('The****quick brown fox****jumps over **the****lazy** dog.')
11
>>> f('\***a**')
1
>>> f('x***x**') # this one doesn't match the Stack Overflow input box
2

x***x**ইনপুট বাক্সে কেন কাজ করে না আমার কোনও ধারণা নেই। উদ্ভট
durron597

1

জাভাস্ক্রিপ্ট ES6, 91 বাইট

s=>(o=0,s.replace(/\\(.)\1/g,'..').replace(/(\*\*|__)(?=\S)(.*?\S)\1/g,l=>o+=l.length-4),o)

হাতের আগে সমস্ত পালাতে ডিল করে, তারপরে একটি নিয়মিত এক্সপ্রেশন ব্যবহার করে। প্রচুর গল্ফ সম্ভাবনা।

ব্যাখ্যা

s=>( // Function with argument s
  o=0, // Set var "o" to 0
  s.replace( // Replace...
    /\\(.)\1/g,  // Matches \ followed by two the same characters. g means "global"
    ".." // Replace with two arbitrary characters
  ).replace( // Replace again...
     /(\*\*|__) // Match ** or __, store in "group 1"
       (?=\S)   // Make sure next character isn't whitespace
       (.*?\S)\1  // Match all characters until "group 1".
                  // Make sure last character isn't whitespace
     /g, l=> // Take the match...
       o+= // Increase o by...
         l.length // the length of the match
         - 4 // minus 4 to account for ** and __
  ), o) // Return o

জন্য **a*b*c**এই আয় 9, যা আমি বিশ্বাস করি ভুল। আসল গণনা হ'ল 5 (বা 3, যদি আপনি সূক্ষ্ম বিবেচনায় নিয়ে থাকেন, যা ওপি অনুসারে আপনার উচিত নয়)।
ক্রিশ্চিয়ান লুপাস্কু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.