সংক্ষিপ্ত বিবরণ সত্যই আপনার বার্তা সেন্সর সংকীর্ণ করতে পারে


36

এই কারণে, আপনার যদি বাক্যাংশটি কোনও শব্দের সংক্ষিপ্ত আকার হয় তবে কাজ করার আরও ভাল উপায় প্রয়োজন। আপনি এছাড়াও মনে করেন যে প্রশ্নের বাক্যাংশ এবং শব্দটি পুনরাবৃত্তিক সংক্ষিপ্ত রূপে আছে তা দেখার পক্ষে এটি সার্থক হবে।

তোমার কাজ:

একটি শব্দ এবং তারপরে একটি বাক্য একটি রেখার দ্বারা পৃথক করা হয়েছে, বাক্যটি যদি একটি সংক্ষিপ্ত আকার হয় এবং আউটপুট যদি এটি পুনরাবৃত্ত সংক্ষিপ্ত রূপ হয় । (শব্দগুচ্ছটিতে এটি কী বোঝায়)

  • ইনপুট বর্ণানুক্রমিক অক্ষরের পাশাপাশি ফাঁকা স্থান রচনা করবে।
  • আপনার প্রোগ্রামটি কেস সংবেদনশীল হওয়া উচিত নয়।

উদাহরণ ইনপুট / আউটপুট:

মামলা 1:

ইনপুট:

Acronyms
Acronyms can really obviously narrow your message sensors

আউটপুট:

True 
True

কেস 2:

ইনপুট:

FAQ
frequently asked questions

আউটপুট:

True 
False

মামলা 3:

ইনপুট:

foo
bar baz

আউটপুট:

False
False

মামলা 4:

ইনপুট:

GNU
GNU is not Unix

আউটপুট:

False
False

কেস 5:

ইনপুট:

Aha
A huge Aha

আউটপুট:

True
True

69
সংক্ষিপ্ত শব্দ পুনরাবৃত্তি করতে পারেন? উহু! এখন আপনি মেকিং সেন্স করছেন।
Geobits

2
না, যতক্ষণ না এটি আউটপুটটি কী তা স্পষ্ট
ব্লু

9
এটি আমাকে একটি
এক্সকেসিডি’র


4
এবিসিডিই: আরেকটি বুনিয়াদি স্পষ্টভাবে সংজ্ঞায়িত উদাহরণ।
জন ডিভোরাক

উত্তর:


10

পাইথ, 19 18

&pqJrz0hCKcrw0)}JK

এই বরং বিজোড় বিন্যাসে ফলাফলের ছাপে, মত: TrueFalse

আপনি এটি অনলাইনে চেষ্টা করতে পারেন বা টেস্ট স্যুটটি চালাতে পারেন ।

ব্যাখ্যা:

&pqJrz0hCKcrw0)}JK      :
    rz0    rw0          : read two lines of input, and convert each to lower case
          c   )         : chop the second input on whitespace
   J     K              : store the first line in J and the chopped second line in K
  q    hC               : zip K and take the first element, check if it is the same as J
 p                      : print and return this value
&              }JK      : and the value with whether J is in K, implicit print

15

পাইথন 3, 89

SOPython ধন্যবাদ একটি গুচ্ছ বাইট সংরক্ষণ করা।

a=input().lower()
d=input().lower().split()
h=tuple(a)==next(zip(*d))
print(h,h&(a in d))

এই সমাধানের সবচেয়ে জটিল অংশটি হ'ল h=tuple(a)==next(zip(*d))
এটি তালিকে জিপতে আনপ্যাক করে dএবং তারপরে nextপ্রতিটি পুনরাবৃত্ত উত্তীর্ণের প্রথম উপাদানটির একটি টুপল ফিরে আসতে কল করে zipযার পরে একটি ( tuple(a)) বর্ণের প্রতিটি অক্ষরের সাথে তুলনা করা হয় ।


আপনি বদলে 7 বাইট সংরক্ষণ করতে পারবেন [0]==l জন্য .startswith(l)
স্কাইলার

7

সিজেম, 21 20 বাইট

qeuN/)S/_:c2$s=_p*&,

ব্যবহার করে দেখুন এই বেহালার CJam অনুবাদক অথবা একবার এ সব পরীক্ষার বিষয় যাচাই করুন।

কিভাবে এটা কাজ করে

qeu                  e# Read from STDIN and convert to uppercase.
   N/                e# Split at linenfeeds.
     )S/             e# Pop the second line form the array.
      S/             e# Split it at spaces.
        _:c          e# Push a copy and keep on the initial of each word.
           2$s       e# Push a copy of the line array and flatten it.
                     e# This pushes the first line.
              =      e# Check for equality.
               _p    e# Print a copy of the resulting Boolean.
                 *   e# Repeat the word array 1 or 0 times.
                  &  e# Intersect the result with the line array.
                   , e# Push the length of the result (1 or 0).

4

হাস্কেল, 81 80 বাইট

import Data.Char
f[a,b]|c<-words b=(a==map(!!0)c,elem a c)
p=f.lines.map toLower

আউটপুট ফর্ম্যাটটি কঠোরভাবে সংজ্ঞায়িত করা হয় নি, তাই আমি একজোড়া বুলিয়ান ফিরিয়ে দিই, যেমন p "Aha\na huge arm"-> (True,False)


আজ আমি প্যাটার্ন গার্ডদের শিখলাম ( <-) ধন্যবাদ!
wchargin

4

স্কালা, 135 110 108 বাইট

val Array(x,y)=args.map(_.toLowerCase)
val z=y.split(" ").map(_(0)).mkString
print(z==x,z==x&&y.contains(z))

কমান্ড লাইন আর্গুমেন্ট (ইঙ্গিতটির জন্য জে আটকিনকে ধন্যবাদ) ব্যবহার করে, বুলিয়ানদের টিউপেল হিসাবে রেখে, প্রিন্টলনের mkStringপরিবর্তে new Stringএবং মুদ্রণ করে কয়েকটি বাইট সংরক্ষণ করা হয়েছে ।

সম্পাদনা: প্রশ্নের ভুল ব্যাখ্যা করা হয়েছে, এবং সমাধানটির পুনরায় প্রতিস্থাপন করতে হয়েছিল


3

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

ভাল, কমপক্ষে এটি স্কালাকে পরাভূত করেছে;)

x=input().lower()
y=input().lower().split()
g=all(x[i]==y[i][0]for i in range(len(y)))
print(g,g&(x in y))

1
@ মুডিফিশ সম্ভবত প্রতিটি উদাহরণের আরও বেশি ব্যাখ্যা এটি অন্য ব্যক্তির সাথে ঘটতে রোধ করবে।
বিটা ক্ষয়

স্যান্ডবক্সে আরও সময় কি সাহায্য করবে? এটির আমার (স্পষ্টতই বরং সীমাবদ্ধ) অভিজ্ঞতায় আপনি কেবল প্রতিক্রিয়া পাবেন যখন এটি প্রায় শীর্ষে থাকবে
ব্লু

@ মুডিফিশ ভাল আপনি কতক্ষণ এটি রেখে গেছেন তা আমি জানি না, আমি জানি না
বেটা ডেকে

আমি প্রায় একদিন সেখানে রেখেছি
ব্লু

@ মুডিফিশ এক সপ্তাহের প্রস্তাবিত আদর্শ
বিটা

3

অ্যাপলস্ক্রিপ্ট, 302 301 297 293 বাইট

ওহ, হ্যাঁ এমন কি বিরক্তও করি না যে আমি হেরেছি, এটি অ্যাপলস্ক্রিপ্টের জন্য প্রতিযোগিতামূলক।

x সেট করুন (প্রদর্শন ডায়ালগ "" "ডিফল্ট উত্তর" ") এর পাঠ্য ফিরে এসেছে
y সেট করুন (প্রদর্শন ডায়ালগ "" "ডিফল্ট উত্তর" ") এর পাঠ্যটির শব্দ ফিরে এসেছে
y এর আইটেমের সংখ্যাতে n সেট করুন
পুনরাবৃত্তি n
চেষ্টা
যদি y এর আইটেম n এর অক্ষর 1 = (পাঠ্য হিসাবে x) এর অক্ষর n হয় না তবে {মিথ্যা, মিথ্যা return
শেষ
n-n এ সেট করুন
শেষ
প্রত্যাবর্তন {সত্য, এক্স আপনার সাথে রয়েছে}

ফলাফলগুলি:

{সত্য মিথ্যা}

বা উত্তর যাই হউক না কেন।


2

পিএইচপি, 120 বাইট

কেস সংবেদনশীল না হওয়া অনেক ওজন (26 বাইট)। সমস্ত পরীক্ষার কেস পাস করেছে:

foreach($c=explode(' ',strtolower($argv[2]))as$l)$m.=$l[0];var_dump($x=$m==$a=strtolower($argv[1]),$x&&in_array($a,$c));

এই ফর্মটিতে দুটি বুল মান আউটপুট করে:

bool(true)
bool(false)

কমান্ড লাইন থেকে দুটি আর্গুমেন্ট পড়ে:

a.php Acronyms "Acronym can really obviously narrow your message sensors"

Ungolfed

$acronym = strtolower($argv[1]);
$words = strtolower($argv[2]);
$words = explode(' ', $words);

foreach($words as $word) {
    $letters .= $word[0];
}

$isAcronym = $letters == $acronym;

var_dump(
    $isAcronym,
    $isAcronym && in_array($acronym, $words)
);

2

রুবি, 77 74 বাইট

b=gets.chop.upcase
a=gets.upcase
p c=a.scan(/\b\w/)*''==b,c&&a.include?(b)

1

রুবি, 52 বাইট

p !!gets[/^#{x=gets.scan(/\b\w/)*""}$/i],!! ~/#{x}/i

উদাহরণ:

$ echo "Aha
A huge AHA" | ruby acronym.rb
true
true

1

মতলব, 90 বাইট

function z=f(r,s)
z=[sum(regexpi(s(regexpi(s,'(?<=(\s|^))\S')),r))>0 nnz(regexpi(s,r))>0];

উদাহরণ (নোট করুন মাতলাব প্রদর্শন করে true/ falseহিসাবে 1/ 0):

>> f('Aha', 'A huge Aha')
ans =
     1     1

1

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

(a,b)=>[(r=eval(`/^${a}$/i`)).test((s=b.split` `).map(c=>c[0]).join``),s.some(c=>r.test(c))]

উভয় স্ট্রিংকে প্যারামিটার হিসাবে ইনপুট করুন। দুটি মান সহ একটি অ্যারের আউটপুট দেয়: প্রতিটি বুলিয়ানের জন্য একটি।


1
আমি এর জায়গায় একটি রেজেক্স ব্যবহার করার কথা ভাবিনি .indexOf। চমৎকার কাজ! সম্ভবত r=eval(`/^${a}$/i`)আপনার বর্তমান rসেটআপের জায়গায় কাজ করবে ।
ETH প্রোডাকশন

@ ইথ প্রডাকশনস এবং আমি পরিবর্তে evalকোনও RegExpঅবজেক্ট শর্টনার হিসাবে ভাবিনি । ভকভগক!
Mwr247

0

জিএনইউ সেড, 118 বাইট

-rপতাকা প্রয়োজন , +1 হিসাবে স্কোর অন্তর্ভুক্ত। নোট করুন যে আমি \bএকটি শব্দ-সীমানা ম্যাচের জন্য ব্যবহার করছি , যদিও আমি এই ডকুমেন্টটি জিএনইউ সেডে খুঁজে পাই না। এটা আমার জন্য কাজ করে ...

N
h
s/^(.*)\n.*\b\1\b.*/True/i
/\n/s/.*/False/
x
:
s/(.)(.*\n)\1[^ ]* ?/\2/i
t
/../s/.*/False/
/F/h
/F/!s/.*/True/
G

সম্প্রসারিত:

#!/bin/sed -rf

N
h

# Is it recursive?
s/^(.*)\n.*\b\1\b.*/True/i
# If no replacement, there's still a newline => false
/\n/s/.*/False/

x

# Is it an acronym?
# Repeatedly consume one letter and corresponding word
:
s/(.)(.*\n)\1[^ ]* ?/\2/i
t
# If more than just \n remain, then false
/../s/.*/False/
# And falsify recursive, too
/F/h
# !False => true
/F/!s/.*/True/

G

0

গ্রোভি, 91 বাইট

a=args*.toLowerCase()
println([a[1].split()*.charAt(0).join("")==a[0],a[1].contains(a[0])])

আউটপুট ফর্ম্যাটটি [bool, bool]। এটি কমান্ড লাইন আরগগুলি থেকে ইনপুট নেয়।


0

লুয়া 5.3, 182 বাইট

a=""b=io.read c=a.lower d=a.reverse e=d(c(b()))f=~e:len()h=a.sub g=d(c(b()))for m in g:gmatch"[^ ]+"do f=-~f if h(e,f,f)~=h(m,~0)then break end k=k or m==e end f=f>~1print(f,f and k)

0

আর, 93 বাইট

a=tolower(readLines(,2));cat(a[1]==gsub("([^ ])\\w* ?","\\1",a[2]),a[1]%in%scan(t=a[2],w=""))

ব্যবহার:

> a=tolower(readLines(,2));cat(a[1]==gsub("([^ ])\\w* ?","\\1",a[2]),a[1]%in%scan(t=a[2],w=""))
Aha
A huge Aha
Read 3 items
TRUE TRUE
> a=tolower(readLines(,2));cat(a[1]==gsub("([^ ])\\w* ?","\\1",a[2]),a[1]%in%scan(t=a[2],w=""))
Acronyms
Acronyms can really obviously narrow your message sensors
Read 8 items
TRUE TRUE
> a=tolower(readLines(,2));cat(a[1]==gsub("([^ ])\\w* ?","\\1",a[2]),a[1]%in%scan(t=a[2],w=""))
FAQ
frequently asked questions
Read 3 items
TRUE FALSE
> a=tolower(readLines(,2));cat(a[1]==gsub("([^ ])\\w* ?","\\1",a[2]),a[1]%in%scan(t=a[2],w=""))
foo
bar baz
Read 2 items
FALSE FALSE

0

awk 137 বাইট

awk 'BEGIN{T="True";F="False"}NR*NF<2{a=tolower($1)}END{for(i=1;i<=NF;i++)b=b substr(tolower($i),1,1);print(a==b?T:F)"\n"(a==tolower($1)?T:F)}'
  • T="True";F="False"আউটপুট সরল করতে আরম্ভ করুন ।
  • NR*NF<2{a=tolower($1)}: aপ্রথম লাইনের একটি ক্ষেত্র থাকলে কেবল সেট করে set
  • END{...}: কেবল দুটি লাইন ধরে ...
    • for(i=1;i<=NF;i++)b=b substr(tolower($i),1,1): রিকার্সিভ সংক্ষিপ্ত বিবরণ নির্মাণ করুন।
    • print(a==b?T:F)"\n"(a==tolower($1)?T:F): উভয় তুলনা a==bএবং আউটপুট মুদ্রণ a==tolower($1)

কেউ যদি পুনরাবৃত্তি সংক্ষিপ্ত বিবরণ নির্মাণকে কীভাবে অনুকূল করতে পারে তা জানেন তবে নির্দ্বিধায় পরামর্শ দিন।


0

স্পেসবিএএস - 144 বাইট

1 INPUT a$,b$: LET a$=UP$(a$),b$=UP$(b$),d$="": DIM c$(SPLIT b$,NOT " ")
2 FOR EACH w$ IN c$(): LET d$=d$+w$(1): NEXT w$
3 TEXT d$=a$'POS(a$,b$)>0

2 এক্স ইনপুটগুলিকে বড় হাতের সাথে রূপান্তর করা অক্ষর বনাম ছোট হাতের রূপান্তর সংরক্ষণ করে। এখন এক LETবিবৃতিতে একাধিক অ্যাসাইনমেন্ট করা যেতে পারে , যা সহায়তা করে। এবংTEXT একটি চরিত্রকে বাঁচায়PRINT

সত্য / মিথ্যা প্রদর্শন করতে 1/0 ব্যবহার করে (অ্যাস্টোস্ট্রোফ কেবল পরবর্তী লাইনে আউটপুট সরায়)।


0

পার্ল 5, 90 বাইট

($a,$b)=map{chomp;lc}<>;print((join"",map{substr($_,0,1)}split/ /,$b)ne $a?0:($b=~$a?2:1))

কিছুটা প্রতারণা করা: 0 = সমস্ত মিথ্যা, 1 = এক সত্য, 2 = উভয়ই সত্য। আমি কোনও গল্ফার নই, তবে ব্রাউজ করার সময় অস্থির পার্ল অনুপস্থিত!

($a,$b)=map{chomp;lc}<>;              # get the two lines as lowercase
print((                               #
join"",map{substr($_,0,1)}split/ /,$b # collapse first letters of secondline
     ) ne $a  ? 0 : ( $b=~$a ? 2 : 1))# 0 nothing, 1 not recursive, or 2 

0

জাভাস্ক্রিপ্ট (ES6) 93

(w,s)=>s[L='toLowerCase'](w=w[L](z=y='')).replace(/\w+/g,v=>y+=v[z=z||v==w,0])&&[y=y==w,y&&z]

যে কোনও ইকামাস্ক্রিপ্ট 6 অনুবর্তী ব্রাউজারে নীচে স্নিপেট চালনা পরীক্ষা করুন

f=(w,s)=>s[L='toLowerCase'](w=w[L](z=y='')).replace(/\w+/g,v=>y+=v[z=z||v==w,0])&&[y=y==w,y&&z]

// TEST

out=x=>O.innerHTML+=x+'\n';

;[
 ['Acronyms', 'Acronyms can really obviously narrow your message sensors', true, true]
,['FAQ', 'frequently asked questions', true, false]
,['foo', 'bar baz', false, false]
,['GNU', 'GNU is not Unix', false, false]
,['Aha', 'A huge Aha', true, true]
,['Lolcat', 'Laughing over lolcat captions and tearing.', true, true]
,['ABCDE', 'Another basic clearly defined example.', true, false]
,['GNU', 'Gnus nettle unicorns', true, false]
,['PHP', 'PHP Hypertext Preprocessor', true, true]
].forEach(([a,b,c,d]) => (
  [r,s]=f(a,b), 
  out(((r==c && s==d)?'OK ':'KO ') + a + ',' + b + ' -> ' + f(a,b))
))
<pre id=O></pre>


0

জাভাস্ক্রিপ্ট (ES6), 89 96 95 বাইট

(a,b)=>[p=(a=a[l='toLowerCase']())==(c=b[l]().split` `).map(x=>x[0]).join``,p&&c.some(x=>x==a)]

শকস ... আমি ভেবেছিলাম আমার সব কিছু সমাধান হয়ে গেছে তবে দৃশ্যত আমার ভুল ছিল।

এটি একটি অনামী ফাংশন সংজ্ঞায়িত করে যা ইনপুটটিকে দুটি স্ট্রিং হিসাবে গ্রহণ করে এবং দুটি বুলিয়ান আইটেম ফেরত এবং অ্যারে দেয়। প্রথম আইটেমটি দ্বিতীয় স্ট্রিংয়ের প্রতিটি শব্দের প্রথম অক্ষরের সাথে সমস্ত ছোট হাতের অক্ষরে প্রথম স্ট্রিংকে তুলনা করে গণনা করা হয়। দ্বিতীয় স্ট্রমে প্রথমটি রয়েছে কিনা তা খতিয়ে দেখে দ্বিতীয় আইটেমটি কেবল গণনা করা হয়।

দ্বিতীয় আইটেমটির জন্য এখানে আরও একটি সমাধান রয়েছে; 2 বাইট সংক্ষিপ্ত, তবে খুব কম ব্রাউজারই এটি সমর্থন করে:

p&&c.includes(a)

দ্বিতীয় স্ট্রিংটিতে প্রথমটি ব্যর্থ হয়েছে GNU: Gnus nettle unicorns
কিনা তা খতিয়ে দেখানো হচ্ছে

দয়া করে আবার যাচাই করুন: এটি চেষ্টা করেও কার্যকর হয় না: ReferenceError: l is not defined( l=আগে নিখোঁজ)toLowerCase )
edc65

... এই বাগটি ঠিক করে দিয়েছে, এটি ব্যর্থ হয় 'GNU','GNU is not unix' (পরীক্ষার ক্ষেত্রে 4) মিথ্যা, মিথ্যা হওয়া উচিত
edc65

@ এডসি 65 শুকস, আমি l=বাগটি খুঁজতে গিয়ে মুছে ফেলেছিলাম এবং এটি ফিরিয়ে দিতে ভুলে গেছি। এটা উপরে ওঠানোর জন্য ধন্যবাদ! অন্যান্য পরীক্ষার কেসটিও ঠিক করা উচিত।
ETH প্রোডাকশন

0

পাইক (পোস্ট করার সময় শিরোনামহীন ছিল), (অ-প্রতিযোগিতামূলক), 20 বাইট

l1c"jFh)J"iQl1qDji{&

আপনি এখানে সোর্স কোডটি পেতে পারেন , ভাষা সম্পূর্ণ অস্থিতিশীল (এটির জন্য প্রথম পরীক্ষার চ্যালেঞ্জ) সুতরাং ভবিষ্যতে এটি কাজ করার আশা করবেন না (প্রতিশ্রুতি 8)

বা 18 বাইট (স্থিতিশীল)

l1idcmhsRl1jqDji{&

এখানে চেষ্টা করুন!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.