আপনার প্রশ্নটি আসলে কী ছিল?


19

ভূমিকা

যখন আপনাকে বিরক্তিকর পাঠ্য দেওয়া হয়, আপনি কেবল এটি যত তাড়াতাড়ি সম্ভব শেষ করতে চান। আসুন নীচের পাঠ্যটি পর্যবেক্ষণ করুন:

Ens colligi timenda etc priorem judicem. De quascunque ii at contingere 
repugnaret explicetur intellectu. Adjuvetis hoc fortassis suspicari opportune 
obversari vix eam? Dei praemia prudens hominum iii constet requiri haberem. Ima 
sane nemo modi fuit lus pro dem haud. Vestro age negare tactum hoc cui lor. Ne et 
ut quod id soli soni deus. At constare innumera is occurret ea. Nia calebat seu 
acquiro fraudem effingo dicimus.

দ্রষ্টব্য: এই পাঠ্যটিতে পঠনযোগ্যতার জন্য নিউলাইন রয়েছে, তবে যে পরীক্ষাগুলির ক্ষেত্রে আপনি হ্যান্ডেল করতে হবে তাতে নতুন লাইনের অক্ষর নেই।

পাঠ্যকে স্কিম করার একটি উপায় হ'ল লেখক পাঠ্যটিতে যে প্রশ্নগুলি রেখেছেন সেগুলি সন্ধান করা। উদাহরণস্বরূপ, উপরের লেখায় 1 টি প্রশ্ন রয়েছে। যথা:

Adjuvetis hoc fortassis suspicari opportune obversari vix eam?

পাঠ্যটিকে বাক্যে বিভক্ত করে এটি করা যেতে পারে। একটি বাক্য সর্বদা নিম্নলিখিত বিরাম চিহ্নগুলির সাথে শেষ হবে : .?!(অন্যদের পরিচালনা করতে হবে না)। এগুলি বাদে অন্য প্রতীকগুলি বাক্যটির অংশ।


কাজটি

কেবলমাত্র সমন্বিত পাঠ্যের একটি লাইন দেওয়া

  • অক্ষর (এ-জা-জেড)
  • সংখ্যা (0-9)
  • শূণ্যস্থান
  • বিরামচিহ্ন ( ,.;:?!) (এর মধ্যে একটি দিয়ে একটি বাক্য শুরু হতে পারে না)।

যে কোনও যুক্তিযুক্ত বিন্যাসে পাঠ্যগুলিতে থাকা প্রশ্নগুলি আউটপুট করুন। আপনি ধরে নিতে পারেন যে পাঠ্যটিতে সর্বদা কমপক্ষে 1 টি প্রশ্ন থাকবে । Outputting চিহ্ন এবং নেতৃস্থানীয় আগে ও পরে একটি প্রশ্ন অনুমোদিত হয় স্পেস।

গুরুত্বপূর্ণ : বিরামচিহ্ন প্রতীকের পরে আর কোনও বিরামচিহ্ন প্রতীক ??হবে না (যেমন অবৈধ এবং এটি পরিচালনা করার প্রয়োজন হবে না)।


পরীক্ষার মামলা

বিন্যাসে:

Input
Output(s)

পরীক্ষার মামলাগুলি:

Huh? I haven't heard what you just said. Could you repeat that please?
Huh?
Could you repeat that please?

plz can i haz cheesburgr? i am cat pls.
plz can i haz cheesburgr?

This is a badly formatted question.Can u please help me,or my friends,with formatting this question    ?thankyou.
Can u please help me,or my friends,with formatting this question    ?

a.b.c.d?
d?

Does this question have a question mark? yes
Does this question have a question mark?

Why example.com resolves to 127.0.0.1 in 99.9 percent of cases?
9 percent of cases?

A? b? c? d!
A?
b?
c?

এটি , তাই সর্বনিম্ন সংখ্যক বাইট জিতার সাথে জমা দেওয়া!


2
.?!অন্যরা আবশ্যক না , পরিচালনা করা আপনার নিয়ম উল্লেখ হিসাবে, কিন্তু আপনি বলেছেন অন্যদের হবে না নিয়ন্ত্রণ করতে হবে।
এরিক দি আউটগল্ফার

একাধিক প্রশ্নের সাথে টেস্টকেস নেই?
edc65

@ edc65 প্রথম পরীক্ষার ক্ষেত্রে দুটি প্রশ্ন রয়েছে তবে আমি আরও একটি পরীক্ষার কেস যুক্ত করব।
আদনান

উত্তর:



5

পাইথন, 46 বাইট

import re
f=lambda s:re.findall("[^!?.]*\?",s)

সাথে কল করুন:

f("your string here")

পরীক্ষায় ফলাফল:

['Can u please help me,or my friends,with formatting this question    ?', 'Can u please help me,or my friends,with formatting this question    ?', ' Huh?', ' Could you repeat that please?', ' plz can i haz cheesburgr?', 'd?', 'Does this question have a question mark?', '9 percent of cases?', 'A?', ' b?', ' c?']

আরেকটি ধারণা, 77 বাইট (পাইথন 3 এ আপনার ফিল্টারটির চারপাশের একটি তালিকা প্রয়োজন):

import re
f=lambda s:filter(lambda x:x[-1]=="?",re.split("(?<=[\.\?!]).",s)))

আমি এটির জন্য নতুন তাই এটি সম্ভবত আরও খাটো হতে পারে।

-17 (!) মার্টিনকে ধন্যবাদ জানায়

-2 বাইটসের সাথে কোনও কিছুর মিল রেখে "!", "?" বা "।" (শেল সলিউশনগুলির নিকটবর্তী হওয়া, তবে আমি সন্দেহ করি যে আমি আরও অনেক কিছু বাঁচাতে পারব)


1
প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্বাগতম! খুব সুন্দর প্রথম উত্তর :)।
আদনান

আমি মনে করি না যে আপনার এই চেহারাটি একেবারেই দরকার এবং [\w,:; ]*আপনারাও নিরপরাধকে তৈরি করার প্রয়োজন নেই (কারণ সেই গোষ্ঠীটি যে কোনওভাবেই বিরামচিহ্নের অক্ষর পেরিয়ে যেতে পারে না), এবং তারপরে আপনাকেও আপনার ইনপুটটিকে প্রিপেন্ড করতে হবে না .। আপনি ক্যালসো বাকী অক্ষরের ক্লাসটি ছোট করে দিন [^.!?]
মার্টিন ইন্ডার

ধন্যবাদ, মার্টিন! আমি এটিকে কিছুটা চেষ্টা করে দেখেছি, কিন্তু তা দেখতে পেলাম না।
কার্লকাস্টোর

4

জাভাস্ক্রিপ্ট, 35 24 বাইট

a=>a.match(/[^.?!]*\?/g)

রিটার্নস সব সাবস্ট্রিং করে একটি পর শুরু ., ?অথবা !(অথবা পাঠ্যের প্রথমে) এবং একটি শেষ ?


Urgh। এবং আমি ভেবেছিলাম 40 বাইট দিয়ে ভাল করেছি। গুড জব ওপি এবং @ মার্টিনএেন্ডার
মেয়রমন্টি

3

ভি , 12 বাইট

Í[^.!?]*[.!]

এটি অনলাইন চেষ্টা করুন!

খুব সোজা উত্তর।

Í             "Remove every occurrence, on every line
 [^.!?]       "Of any character that isn't '.', '!', or '?'
       *      "Repeated any number of times
        [.!]  "Followed by a a '.' or a '!'

ধন্যবাদ, নিউলাইনগুলি হ্যান্ডলিং, বা সমস্ত পরীক্ষার কেস যাচাই করা কোনও বাইট যুক্ত করে না।


3

28 বাইট, তাই না? (16 ইউটিএফ -8 চর)
ফ্যাবিও ইওতি

6
@ ব্রুস965 জেলি একটি কাস্টম কোড পৃষ্ঠা ব্যবহার করে যা 256 টি অক্ষরের প্রতিটিকে একক বাইট হিসাবে বোঝে প্রতিটি এনকোড করে। শিরোনামের বাইটস লিঙ্কটি এটিতে ইঙ্গিত করে।
ডেনিস

ওহ ঠান্ডা! আমি এখনও একটি কোডগলফার নই, সুতরাং এই কৌশলগুলি সম্পর্কে আমি অবগত নই, প্রশ্নের জন্য দুঃখিত।
Fabio Iotti

4
@ ব্রুস965 রেকর্ডটির জন্য, এটি সত্যিই একটি কৌশল নয়: ভাষা ঠিক ততটাই আইএসও 8859-1 (বা কিছু বিদ্যমান বিদ্যমান একক-বাইট এনকোডিং) ব্যবহার করতে পারে এবং ঠিক তেমন শক্তিশালী হতে পারে তবে একটি কাস্টম কোড পৃষ্ঠা ব্যবহার করা আপনাকে আরও ব্যবহারের অনুমতি দেয় উদাহরণস্বরূপ যদি আপনাকে নিয়ন্ত্রণের অক্ষর দিয়ে কোড করতে হয় তবে তার চেয়ে সহজে টাইপযোগ্য অক্ষর এবং আরও ভাল মেমোনমিক্স। দিনের শেষে, এটি কেবল বাইটের একটি স্রোত, যেখানে প্রতিটি বাইটকে কিছু অর্থ দেওয়া হয়েছে।
মার্টিন ইন্ডার

2
ঠিক আছে, "কৌতুক" খারাপ ধারণার সাথে শোনা গিয়েছিল, আমার "স্ট্রেটেজেম" বা কিছু বলা উচিত ছিল। আমি "কৌশল" এর চেয়ে ভাল শব্দ আর খুঁজে পাইনি।
Fabio Iotti

3

শেল ইউটিলিটিস, 43 38 বাইট

রেক্সকোগিটানসকে 5 বাইট ছাঁটাই করার জন্য ধন্যবাদ !

tr ? "\n"|sed "s/.*[\.!]//;s/.\+/&?/"

পাইপ ইনপুট ইন, যেমন:

echo Huh? I haven't heard what you just said. Could you repeat that please?|tr ? "\n"|sed "s/.*[\.!]//;s/.\+/&?/"

যদি গুরুত্বপূর্ণ হয় তবে আমি ব্যবহার করছি:

  • জিএনইউ tr5.3.0
  • জিএনইউ sed৪.২.১
  • মাইক্রোসফ্ট cmd.exe, উইন্ডোজ 5.1.2600 সঙ্গে চালিত

  • 1
    আমি এর আগে একাধিক ইউটিলিটি ব্যবহার করে কোনও উত্তর জমা দেয়নি, তাই যদি আমি কিছু ভুল করছি তবে আমাকে জানান।
    জো

    আপনি কি জিএনইউ ইউটিলিটিগুলির উইন্ডোজ সংস্করণগুলি বা উইন্ডোজের জন্য একটি শেল ব্যবহার করেন?
    এরিক আউটগল্ফার

    tr ? "\n"|sed "s/.*[\.!]//;s/.\+/&?/"5 বাইট সাশ্রয় করে (দুটি এড করা হয় trএবং 7 টি তে বাঁচানো হয় sed- এটি ব্যাশে পরীক্ষা করা হয়েছিল) /gএটি লাইন দ্বারা লাইন প্রক্রিয়াজাতকরণ হিসাবে প্রয়োজনীয় নয়।
    রেক্সকোগিটানস

    @ ইজি, আমি জিএনইউ ইউটিলিটিগুলির উইন্ডোজ বন্দর ব্যবহার করছি।
    জো

    @ রেক্সকোগিটানস, ধন্যবাদ! আমি ভুলে গিয়েছিলাম []; আমার প্রথম প্রয়াসটি এমন কিছু দেখতে লাগল \(\.|!\)
    জো


    2

    রুবি 1.9, 17 বাইট

    $_=$F
    

    একটি 5 বাইট প্রোগ্রাম যা অবশ্যই নিম্নলিখিত কমান্ড লাইনের বিকল্পগুলির সাথে ডাকা হবে:

    paF[^?]*[.!]
    

    আমি জানতাম না যে রুবি পতাকাগুলি এমনভাবে কুস্তিযুক্ত হতে পারে, +1! একরকম অদ্ভুত মনে হচ্ছে, যেহেতু পর পরের প্রশ্নগুলি সেই অ্যারের মধ্যে একটি স্ট্রিং হিসাবে একসাথে থাকবে যখন অন্য প্রশ্নগুলি পৃথক, তাই না? রুবি না থাকলে 1.9 কৌতুক আমি অবগত নই।
    মূল্য কালি

    @ ভালিউইঙ্ক অ্যারের সামগ্রীগুলি সংক্ষিপ্ত করা হবে যাতে প্রোগ্রামটি একটি একক স্ট্রিং আউটরেটে দেয়, অ্যারে আক্ষরিক নয়। আপনি এটি চেষ্টা করতে পারেন golf.shinh.org/check.rb যা রুবি ১.৯ রয়েছে। পতাকাগুলি শেবাংয়ে সেট করা যায়।
    xsot

    আহা, এটি আপনাকে 2.0 এর পরে 1.9 কেন প্রয়োজন এবং এটি একটি প্রকৃত অ্যারের মতো দেখতে আউটপুট দেয় তা ব্যাখ্যা করে।
    মূল্য কালি

    1

    ব্যাচ, 174 বাইট

    @echo off
    set/ps=
    set t=
    :l
    set c=%s:~0,1%
    set t=%t%%c%
    if "%c%"=="?" echo %t%&set t=
    if "%c%"=="!" set t=
    if "%c%"=="." set t=
    set s=%s~1%
    if not "%s%"=="" goto l
    

    এসটিডিআইএন থেকে একটি লাইন পড়া ব্যবহারের চেয়ে বাইট কম set s=%*


    1

    পাওয়ারশেল v4 +, 43 বাইট

    ([regex]::Matches($args,'[^?!.]*\?')).Value
    

    সত্যিই সোজা। ইনপুট নেয় $argsএবং একটি। নেট [regex]::Matches(...)স্থির ফাংশনে প্রথম প্যারামিটার হিসাবে ফিড দেয়। আমরা যে রেজেক্সটির সাথে মিলে যাচ্ছি তা হ'ল [^?!.]*\?- যা কোনও বাক্য-সমাপ্তি অক্ষরগুলির একটি সংখ্যা যা একটি প্রশ্ন চিহ্ন অনুসরণ করে। স্ট্যাটিক ফাংশনটি ক্যাপচার গ্রুপ, ইনডেক্স ইত্যাদির বিশদভাবে অবজেক্টগুলির একটি অ্যারে প্রদান করে, তবে আমরা কেবল এস চাই .Value, সুতরাং রিটার্নটি পেরেন্সে আবদ্ধ হয় এবং আমরা সেই সম্পত্তিটিকে কল করি। এটিই যেখানে ভি 4 + প্রয়োজনীয়তাটি খেলতে আসে, পূর্ববর্তী সংস্করণগুলির মতো আপনার পরিবর্তে লুপের মতো কিছু করতে |%{$_.Value}বা |Select Valueউপযুক্ত বৈশিষ্ট্য পাওয়ার জন্য প্রয়োজন।

    প্যারেন্স ছাড়া এবং উদাহরণ .Value

    PS C:\Tools\Scripts\golfing> .\what-exactly-was-your-question.ps1 "Huh? I haven't heard what you just said! Could you repeat that please?"
    
    Groups   : {Huh?}
    Success  : True
    Captures : {Huh?}
    Index    : 0
    Length   : 4
    Value    : Huh?
    
    Groups   : { Could you repeat that please?}
    Success  : True
    Captures : { Could you repeat that please?}
    Index    : 40
    Length   : 30
    Value    :  Could you repeat that please?
    

    প্যারেনস এবং উদাহরণ সহ .Value

    PS C:\Tools\Scripts\golfing> .\what-exactly-was-your-question.ps1 "Huh? I haven't heard what you just said! Could you repeat that please?"
    Huh?
     Could you repeat that please?
    

    1

    পাইথন 3, 91 বাইট

    def f(x,a=0):
     for n in range(len(x)):
      if x[n]in".!":a=n+1
      if x[n]is"?":print(x[a:n+1])
    

    পাইথন 2 এ 1 বাইট সঞ্চয়:

    def f(x,a=0):
     for n in range(len(x)):
      if x[n]in".!":a=n+1
      if x[n]is"?":print x[a:n+1]
    
    আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
    Licensed under cc by-sa 3.0 with attribution required.