এই স্ট্রিংটি কি বর্গাকার?


44

নিম্নলিখিত শর্তগুলি পূরণ করা হলে একটি স্ট্রিং বর্গক্ষেত্র হিসাবে বিবেচিত:

  • প্রতিটি লাইনে একই সংখ্যক অক্ষর রয়েছে
  • প্রতিটি লাইনে অক্ষরের সংখ্যা লাইন সংখ্যার সমান।

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

আপনার নিজের পছন্দ অনুসারে এলএফ, সিআর বা সিআরএলএফ দ্বারা সীমানার জন্য ইনপুট লাগতে পারে।

নতুন লাইন অক্ষর (গুলি) রেখার দৈর্ঘ্যের অংশ হিসাবে বিবেচনা করা হয় না।

আপনাকে ইনপুটটিতে একটি অনুচর নতুন লাইন থাকতে হবে বা নাও থাকতে পারে, যা কোনও অতিরিক্ত লাইন হিসাবে গণনা করে না।

ইনপুট একটি স্ট্রিং বা 1 ডি চর অ্যারে; এটি স্ট্রিংগুলির তালিকা নয়।

আপনি ধরে নিতে পারেন ইনপুটটি খালি নয় এবং কেবলমাত্র ফাঁকা স্থান সহ প্রিন্টযোগ্য এএসসিআইআই রয়েছে।

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

সত্যবাদী পরীক্ষার কেস:

foo বিন্যাস
বার
বায
.s।
.ss
.s।
(গুলি স্থান প্রতিনিধিত্ব করে)
এস এস
এস এস
(গুলি স্থান প্রতিনিধিত্ব করে)
AAAAA
AAAAA
AAAAA
AAAAA
AAAAA

মিথ্যা পরীক্ষার মামলা:

..
।
....


....
4444
333
22
333
333
abc.def.ghi

কিছু মিথ্যা মামলায় অতিরিক্ত ফাঁকা রেখা নোট করুন।

এটি - সবচেয়ে কম বাইট জয়!


ভাষা নকশার সম্ভাব্য সদৃশ : 2-ডি প্যাটার্ন ম্যাচিং । সমস্যা # 5 এই প্রশ্নের মতোই।
mbomb007

1
@ mbomb007 আমি মনে করি বিভিন্ন বিজয়ী মানদণ্ড এটিকে নকল নয়? "গল্ফনেস" ভোটিংয়ের একটি মানদণ্ড ছিল তবে আমি মনে করি না যে এই প্রশ্নের উত্তরগুলি এখানে মূলত প্রতিফলিত করবে।
FryAmTheEggman

2
@ mbomb007 আমি এই প্রশ্নটি উন্মুক্ত রাখতে ভোট দিচ্ছি কারণ এটি অন্য প্রশ্নের একটি উপসেট হলেও অন্য প্রশ্নটি সেই প্রশ্নের জন্য বিশেষত তৈরি করা ভাষাগুলির মধ্যেই সীমাবদ্ধ।
ইটিএইচ প্রোডাকশনস

2
@ এমবিম্ব 77:: এটি কোনও সদৃশ নয়, কারণ এই প্রশ্নটি আপনাকে বিদ্যমান ভাষার উত্তর দেওয়ার পরিবর্তে প্রশ্নের উত্তর দেওয়ার উদ্দেশ্যে কোনও ভাষা ডিজাইন করতে বলে। এখানে উত্তর খুব কমই আইনী হবে।

1
@ এমবম্ব ২০০7: এটি এই চ্যালেঞ্জটি বন্ধ করার কোনও কারণ নয় এবং যদিও লোকেরা প্রাক-বিদ্যমান ভাষায় তাদের উত্তর পোস্ট করার জন্য কোথাও দেয় না। এটি সম্ভবত অন্য চ্যালেঞ্জ বন্ধ করার পক্ষে যুক্তি হতে পারে (কারণ এটি এটির আরও একটি সীমাবদ্ধ সংস্করণ) যদিও আমি এটাকে একটি দুর্বল যুক্তি হিসাবে বিবেচনা করব এবং বিশ্বাস করি যে উভয়কেই খোলা রাখা উচিত।

উত্তর:


19

ব্র্যাচল্যাগ (2), 3 বাইট

ṇẹṁ

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

পুরো প্রোগ্রাম। true.সত্যবাদী, মিথ্যা জন্য আউটপুট false.

ব্যাখ্যা

ṇẹṁ
ṇ     Split {standard input} into lines
 ẹ    Split {each line} into basic elements {in this case, characters}
  ṁ   Assert that the result is square

আমি যখন বিল্টিন যুক্ত হয়েছিল তখন তার কার্যকারিতা সম্পর্কে আমি কিছুটা সংশয়ী ছিলাম, তবে আমি সত্যিই অস্বীকার করতে পারি না যে এটি এখানে সহায়ক…

ব্র্যাচল্যাগ (2), 7 বাইট

ṇẹ.\l~l

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

অ-বিল্টিন সমাধান। লেখার সময় হিসাবে এখনও অন্য সমস্ত এন্ট্রিগুলিকে মারধর করে। সম্পাদনা: একেবারে নয়, আমি এটি লেখার সময় সমান দৈর্ঘ্যের জেলি এন্ট্রি পেয়েছিল এবং টাইমস্ট্যাম্প টাইব্রেকের মাধ্যমে মারধর করে।

ব্যাখ্যা

ṇẹ.\l~l
ṇ         Split {standard input} into lines
 ẹ        Split {each line} into basic elements {in this case, characters}
   \l     Assert that the result is rectangular, and the number of columns
  .  ~l     is equal to the number of rows

1
কাজের সঠিক সরঞ্জাম!
পাভেল

10
= "
দৃ

5
কিছুক্ষণ আগেই আমি একটি প্রতিদ্বন্দ্বিতা ছিল যেখানে আমি একটি দাবী-বর্গক্ষেত্র লেখার জন্য লড়াই করে যাচ্ছিলাম (এটি তখনকার মতো কিছু ছিল .\l~lexcept ব্যাকস্ল্যাশ কমান্ড, যা অন্যান্য বিষয়গুলির মধ্যেও দাবি করে যে এর ইনপুটটি একটি আয়তক্ষেত্রটি ভেঙে গেছে; দয়া করে মনে রাখবেন এমনকি যদি আমরা প্রতিস্থাপন সঙ্গে .\l~l, এই এখনও সবচেয়ে কম প্রোগ্রাম এখানে; আমি পোস্ট যে যুক্ত করতে হবে) মনে আসা। ব্যাকস্ল্যাশ কমান্ডটি ঠিক হয়ে গেছে, তবে ভাষা লেখক একই সাথে একটি দাবী-স্কোয়ার যুক্ত করার সিদ্ধান্ত নিয়েছে। আমি ভাবছিলাম "অবশ্যই এটি আর কখনও আসবে না"। সম্ভবত আমি ভুল ছিল।

2
@ ফিনিক্স: ভাষার সংস্করণ নম্বর, এটি ব্র্যাচল্যাগ ভি 1 এ কাজ করবে না। বেশিরভাগ লোকেরা কেবল "ব্র্যাচ্ল্যাগ" বলে (যেমন বেশিরভাগ লোক "পার্ল 5" না বলে "পার্ল" বলে) তবে আমি অভ্যাসে ফিরে গিয়েছিলাম কারণ আমি বিরল অনুষ্ঠানে ব্র্যাচল্যাগ ভি 1 ব্যবহার করি।

2
@iFreilicht এটি খারাপ কারণ এটি এখনও পর্যন্ত অন্যান্য গল্ফিং ভাষাগুলিকে ছাপিয়ে যায়।
এরিক আউটগল্ফার

21

4
আমি সত্য যে এটি উভয় গল্ফ এবং পাঠযোগ্য।
jpmc26

আপনার দরকার নেই '\n', কেবল খালি রাখুন (যেহেতু ইনপুটটিতে কোনও স্থান এবং ট্যাব নেই)।
12431234123412341234123

@ 12431234123412341234123 না, এটি স্পেস যুক্ত বর্গক্ষেত্রের জন্য কাজ করে না !!!
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার এটি স্পেস দিয়ে কাজ করা উচিত? আমি যেমন বুঝতে পেরেছি ইনপুটটিতে কখনও ফাঁকা স্থান নেই।
12431234123412341234123

আপনি চশমাগুলি ভুল বুঝেছেন: আপনি ধরে নিতে পারেন ইনপুটটি খালি নয় এবং কেবল প্রিন্টযোগ্য এএসসিআইআই রয়েছে। , এবং হোয়াইটস্পেস (``) প্রিন্টযোগ্য ASCII
মিস্টার এক্সকোডার

14

জাভাস্ক্রিপ্ট (ES6), 46 45 বাইট

s=>!(s=s.split`
`).some(x=>x.length-s.length)

ব্যাখ্যা

  1. নতুন লাইনে স্ট্রিংটিকে একটি অ্যারেতে বিভক্ত করুন।
  2. অ্যারে উপর লুপ।
  3. প্রতিটি লাইনের দৈর্ঘ্য থেকে অ্যারের দৈর্ঘ্য বিয়োগ করুন।
  4. যদি কোনও শূন্যের (অর্থাত সত্যবাদী) মান কোনও লাইনের জন্য ফিরে আসে তবে স্ট্রিংটি বর্গাকার নয়।
  5. trueস্কোয়ারের falseজন্য এবং না পাওয়ার জন্য লুপটির ফলাফলটি নেগেট করুন ।

চেষ্টা করে দেখুন

f=
s=>!(s=s.split`
`).some(x=>x.length-s.length)
oninput=_=>o.innerText=f(i.value)
o.innerText=f(i.value=`foo
bar
baz`)
<textarea id=i></textarea><pre id=o>


3
আমি মনে করি আপনি এই বাইটটি সংরক্ষণ করতে পারবেনs=>!(s=s.split`\n`).some(x=>x.length-s.length)
ETH প্রডাকশনগুলি

ধন্যবাদ, @ ইথ প্রডাকশনস। আমার !someহাত থেকে বরখাস্ত করার এক ভয়ানক অভ্যাস আছে , কারণ এটি দৈর্ঘ্যের সমান every
শেগি

9

05 এ বি 1 ই , 10 8 বাইট

¶¡€gDgQP

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

-২ রিলেকে ধন্যবাদ, এটি মূলত তার উত্তর answer।

Code       # Explanation                  | Truthy Example          | Falsy Example
-----------#------------------------------+-------------------------+--------------
¶¡         # Split on newlines            | [['aaa','aaa','aaa']]   | [['aa']]
  €g       # Get length of each           | [[3,3,3]]               | [[2]]
    D      # Dupe                         | [[3,3,3],[3,3,3]]       | [[2],[2]]
     g     # Get length                   | [[3,3,3],3]             | [[2],1]
      Q    # Check equality               | [[1,1,1]]               | [[0]]
       P   # Take product                 | 1                       | 0

@ রিলে আহ, চমৎকার ধরা, আমার আসল ধারণাটি আপনার যা ছিল তার চেয়ে অনেক বেশি ছিল তবে কিছুটা আলাদা। আরও দু'বার বার চেষ্টা করা হয়েছে এবং আমার গণিতের ত্রুটিটি ধরা পড়েনি।
ম্যাজিক অক্টোপাস উরন

আমি মনে করি না "শিরোনাম" ইনপুটটিতে একটি বৈধ ফর্ম।
পাভেল

@ ফিনিক্স এটি আরও ভাল?
ম্যাজিক অক্টোপাস উরন

1
ইনপুটটি এই জাতীয় তিনটি উদ্ধৃতি সহ নেওয়া যেতে পারে ।
আদনান

1
আপনি যদি প্রথমটির দৈর্ঘ্য পান তবে আপনি এড়াতে পারেন s। এটি পছন্দ করুন¶¡€gDgQP
রিলে


9

হাস্কেল, 38 34 বাইট

l=length
(all=<<(.l).(==).l).lines

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

এর পয়েন্টফ্রি সংস্করণ f s = all ((==length (lines s)).length) (lines s), অর্থাত্ ইনপুটটিকে লাইনে বিভক্ত করুন এবং পরীক্ষা করুন যে প্রতিটি লাইনের দৈর্ঘ্য রেখার সংখ্যার সমান কিনা।

সম্পাদনা করুন: 4 বাইটের জন্য @ এক্সনোরকে ধন্যবাদ


1
আমার মনে হয় আপনি ব্যবহার করতে পারেন allজন্য mapকাটা and.
xnor

9

জেলি , 7 বাইট

ỴµL;L€E

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

ব্যাখ্যা

Ỵµ       Split the input on newline and use as input in the second link     
  L      Get the number of list items
   ;     And append to that
    L€   A list with the legth of each list item
      E  Check to see if all items are equal.

1
আপনার টিআইও লিঙ্কটি দেখে মনে হচ্ছে যে কোনও নতুন লাইনের উপস্থিতি নেই।
পাভেল

@ ফিনিক্স ফিক্সড / রিভার্টেড ...
স্টেনবার্গ

এটি কেবল সমস্ত লাইন একই দৈর্ঘ্যের কিনা তা পরীক্ষা করে দেখায় - এটি আসলে নতুন লাইন গণনাটিকে মোটেই বিবেচনা করে না। আপনি যখন ই পরমাণুতে পৌঁছান, আপনার কাছে লাইন দৈর্ঘ্যের একটি তালিকা থাকে এবং এগুলি সবই।
ছড়িয়ে ছিটিয়ে

@ খ্রিস্টিয়ান স্থির এবং সংক্ষিপ্ত করা হয়েছে। দুঃখিত 'বিভ্রান্তি
কাটিয়ে ওঠার

9

জাপট , 9 বাইট

=Ur.Q)¥Uy

এটি অনলাইন পরীক্ষা!

ব্যাখ্যা

 =Ur.Q)¥ Uy
U=Ur.Q)==Uy
             // Implicit: U = input string, Q = quotation mark
U=    )      // Set U to
  Ur.Q       //   U with each non-newline (/./g) replaced with a quotation mark.
       ==Uy  // Return U == U transposed. U is padded to a rectangle with spaces before
             // transposing; if U was not a rectangle before, or the sides are not of
             // equal length, the result will not be the same as U.
             // Implicit: output result of last expression

এই চ্যালেঞ্জটি পোস্ট হওয়ার কিছুক্ষণ পরে কিছু বৈশিষ্ট্য প্রয়োগ করা হয়েছে, এটি 6 বাইট হতে পারে:

r.Q
¥y

এটি অনলাইন পরীক্ষা!

ব্যাখ্যা

       // Implicit: U = input string
r.Q    // Replace each non-newline (/./g) in U with a quotation mark.
       // Newline: set U to the result.
¥      // Return U ==
 y     //   U transposed.
       // Implicit: output result of last expression

পৃথিবীতে আপনি এত দ্রুত?
সম্পূর্ণরূপে

@ টোটালিহুমান আমার পোস্টটি তাত্ক্ষণিকভাবে পোস্ট করা প্রশ্নটি দেখতে পেয়েছিল এবং অ্যালগরিদমটি আসতে আমার কাছে দুই মিনিট সময় লেগেছিল। এর পরে এটি কেবল বাস্তবায়ন এবং পোস্টিং ছিল। (এছাড়াও আমার কাছে
হাহাতে

চমৎকার :) আমি জানতাম yসমাধানটি ছিল তবে আমার আরও কয়েকটা বাইটে inুকছে।
শেগি

" এই চ্যালেঞ্জ পোস্ট হওয়ার কিছুক্ষণ পরে কিছু বৈশিষ্ট্য প্রয়োগ করা হয়েছে " - আপনি এখন এটিকে আপনার asnwer হিসাবে পোস্ট করতে পারেন।
শেগি

7

রেটিনা , 33 31 বাইট

.
.
^(.(.)*)(?<-2>¶\1)*$(?(2).)

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


দুর্ভাগ্যবশত, এই এই জন্য সত্য আউটপুট testcase
ক্রিটিকি লিথোস

@ ক্রিটিক্সিলিথোস আমি বিশ্বাস করি যে জমা দেওয়ার জন্য ইনপুটটিতে একটি ট্রেলিং নিউলাইন প্রয়োজন, যা অনুমোদিত।
পাভেল

এছাড়াও আমি বিশ্বাস করি \S\n;প্রথম লাইনের পরিবর্তে ব্যবহার করা একটি বাইট সংরক্ষণ করে
ক্রিটিক্সী লিথোস

@KritixiLithos বাস্তবিক প্রতিস্থাপন .সঙ্গে .দুই নয়, কিন্তু ধন্যবাদ পরিমাণ সঞ্চয় হয়।
নীল

@ নীল এটি সত্যই চালাক!
ক্রিটসি লিথোস

6

কাস্তে , 6 বাইট

S≡T'a¶

একটি স্ট্রিং নেয় এবং হয় 1বা প্রিন্ট করে 0এটি অনলাইন চেষ্টা করুন! প্রথম লাইন পরীক্ষার ক্ষেত্রে পুনরাবৃত্তি করে; আপনি যদি একটি মানের সাথে পরীক্ষা করতে চান তবে এটি সরান।

ব্যাখ্যা

হাস্ক একটি নতুন ক্রিয়ামূলক গল্ফিং ভাষা যা আমার এবং লিওর তৈরি । এটি অনেকগুলি বৈশিষ্ট্য হারিয়েছে এবং উন্নয়ন চলছে। এর প্রধান বৈশিষ্ট্যটি একটি অনমনীয় প্রকারের সিস্টেম যা আমাদের উচ্চতর অর্ডার ফাংশনগুলি ওভারলোড করতে দেয়।

উচ্চ স্তরে, প্রোগ্রামটি এইভাবে কাজ করে:

S≡T'a¶  Define a function:
     ¶  split on newlines,
  T'a   transpose and pad to rectangle using character 'a',
 ≡      check if this has the same shape as
S       the split input.

ফাংশন আসলে চেক যদি দুইটি অ্যারের একই আকৃতি এবং truthy উপাদানের একই বন্টন আছে। হুস্কে, নাল বাইট ব্যতীত সমস্ত অক্ষর সত্যবাদী এবং এটি আমাদের ইনপুটগুলিতে ঘটে না। এছাড়াও, Sহয় এস-combinator , একটি ফাংশন যে হিসাবে ইনপুট দুটি ফাংশন, এখানে লাগে এবং T'aএকটি নতুন ফাংশন যা মানচিত্র এবং আয় xকরতে ≡(x)(T'a x)। ফলাফল Sসঙ্গে গঠিত হয় , এবং যে ফাংশন পরোক্ষভাবে ইনপুট প্রয়োগ করা হয়।

কীভাবে হুস জানবেন যে এটি Sপরবর্তী ফাংশনে প্রয়োগ করা উচিত , তবে তার বামে ফাংশনটি দিয়ে তৈরি করা উচিত? সরল: এটি কেবল প্রতিটি ব্যাখ্যার চেষ্টা করে এবং প্রকারগুলি বোঝায় সেটিকে বেছে নিয়েছে। এটি হুস্ক ডকুমেন্টেশনে আরও বিশদে ব্যাখ্যা করা হয়েছে ।


5

খাঁটি বাশ (কোনও উপযোগ নেই), 55

mapfile -t a
for l in ${a[@]};{
((c+=${#l}^${#a[@]}))
}
  • mapfile অ্যারে ইনপুট পড়া a
  • তারপরে অ্যারের উপাদানগুলির সংখ্যা প্রতিটি রেখার দৈর্ঘ্যের সাথে XORed হয়, এবং যোগফল নেওয়া হয়। নিখুঁত বর্গক্ষেত্রের জন্য, প্রতিটি এক্সওআর ফলাফল (এবং এইভাবে যোগফল) 0 হবে else অন্য যে কোনও কিছুর জন্য ফলাফল> 0 হবে।

এর বিপরীত ধারণাটি শেল রিটার্ন কোড হিসাবে ফিরে আসে (পরীক্ষা করে echo $?) - নিখুঁত বর্গ 1, অন্য কিছু 0 হয়।

অনলাইনে (truthy) ব্যবহার করে দেখুন

এটি অনলাইন চেষ্টা করুন (falsy)


পূর্ববর্তী উত্তরটি ইভাল-এস্কেপ-এক্সপেনশন হেল্প ব্যবহার করে, 78:

mapfile -t a
echo $[0$(eval eval echo +\\$\{#a[{0..$[${#a[@]}-1]}]}^${#a[@]})]

অনলাইনে (truthy) ব্যবহার করে দেখুন

এটি অনলাইন চেষ্টা করুন (falsy)


5

পার্ল 6 , 27 বাইট

{.lines==all .lines».comb}

ইনপুট স্ট্রিংয়ে রেখার সংখ্যা প্রতিটি লাইনের অক্ষরের সংখ্যার সমান কিনা তা পরীক্ষা করে।


এটি কি নতুন লাইনের চরিত্রটিকে উপেক্ষা করে?
খালেদ.কে

হ্যাঁ, নিউলাইনগুলি .linesপদ্ধতিটি দিয়ে ফিরে আসে না ।
শন

4

পাইথ, 7 বাইট

CImL1.z

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

কোনও ট্রেলিং নিউলাইন দরকার নেই। ইনপুটটিকে 1s এর 2D অ্যারের সাথে প্রতিস্থাপন করে যেখানে 1 টি মূল ইনপুটটিতে কোনও অক্ষরকে উপস্থাপন করে। তারপরে আমরা তা পরীক্ষার পরে সেই অ্যারেটি অপরিবর্তিত কিনা তা পরীক্ষা করে দেখি (সারিগুলির সাথে কলামগুলি প্রতিস্থাপন করে)। কেবলমাত্র একটি বর্গক্ষেত্র এমন পরিস্থিতিতে সত্য আসবে।


4

জাভা (ওপেনজেডিকে 8) ,96 91 90 87 বাইট

-5 বাইটস @ কেভিন
ক্রুইজসেন -২ বাইট ধন্যবাদ @ দ্য লেথলকোডার
-২ বাইট ধন্যবাদ @ অলিভিগ্রগ্রোয়ারকে ধন্যবাদ

a->java.util.Arrays.stream(a.split("\n")).allMatch(x->x.length()==a.split("\n").length)

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


1
আপনি স্থান অপসারণ করতে পারেন String[]sএবং আপনি অপসারণ করতে পারেন ,0মধ্যে .split("\\n");-3 বাইট জন্য। এবং সেমিকোলন / ;একেবারে শেষে আপনাকে গণনা করতে হবে না, যাতে অন্য একটি -1। ওহ, এবং আপনাকে ভয় পেয়ে java.util.যাওয়ার সামনে আপনাকে অন্তর্ভুক্ত করতে হবে Arrays। আমদানি / ইউএসিংগুলি বাইট-কাউন্টেরও একটি অংশ।
কেভিন ক্রুইজসেন

1
আপনি যেহেতু অন্তর্ভুক্ত করতে ভুলে গেছেন java.util., এই জাতীয় নিয়মিত নিয়মিত লুপটি তার for(String x:s)if(x.length()!=s.length)return 0>1;return 1>0;চেয়ে কম মনে হয় return java.util.Arrays.stream(s).anyMatch(l->l.length()!=s.length);
কেভিন ক্রুইজসেন

2
শুধু তাই না \n?
TheLethalCoder

1
পুনরাবৃত্তি a.split("\n")আসলে খাটো! a->java.util.Arrays.stream(a.split("\n")).allMatch(x->x.length()==a.split("\n").length)
অলিভিয়ার গ্রাগোয়ার

2
হুমম ... আরও কিছু পাশাপাশি রয়েছে lengএবং এর মধ্যে রয়েছে th()। স্পষ্টতই, তারা they০ তম চর পরে প্রথমে প্রতি 20 টি অক্ষরের পরে উপস্থিত হয়।
অলিভিয়ার গ্রাগোয়ার

3

প্রকারের ইমো প্রতারক, এটি মূলত n1 এর পরিবর্তে ইনপুট গ্রহণ করছে এবং কেন আমার মূল উত্তরটি কাজ করে না।
ম্যাজিক অক্টোপাস উরন

@ কারাসোকম্পুটিং নং এর |অর্থ, "বাকি ইনপুটটি নিয়ে যান এবং নিউলাইনগুলি দ্বারা বিভক্ত হন" যা কোনওভাবেই একাধিক ইনপুট গ্রহণ করে না। আপনাকে কেবল এসটিডিনকে একটি একক ইনপুট হিসাবে বিবেচনা করতে হবে।
এরিক আউটগল্ফার

3

আর , 57 বাইট

function(s)all(nchar(n<-strsplit(s,'
')[[1]])==length(n))

একটি বেনামী ফাংশন; নিউলাইনগুলিতে বিভক্ত হয়, প্রতিটি লাইনের দৈর্ঘ্য গণনা করে এবং সবগুলি লাইন সংখ্যার মতো হয় কিনা তা পরীক্ষা করে।

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


3

এমএটিএল , 14 12 বাইট

10H&XXot&n=h

ইনপুট স্ট্রিংটি স্ট্রিং কনটেনটেশন ( [...]) ব্যবহার করে এবং 10এলএফ উপস্থাপনের জন্য কোড পয়েন্ট সহ সংজ্ঞায়িত করা হয় । উদাহরণস্বরূপ, ['aaa' 10 'bb']এমএটিএল-তে স্ট্রিংকে 'aaa'কোড পয়েন্টের 10সাথে স্ট্রিংয়ের সাথে সংযুক্ত কোড পয়েন্ট হিসাবে স্ট্রিং হিসাবে ব্যাখ্যা করা হয় 'bb'

আউটপুটটি একটি খালি নয় এমন সংখ্যাযুক্ত ভেক্টর, যা সত্য এবং যদি কেবল তার সমস্ত এন্ট্রি শূন্য হয়।

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

ব্যাখ্যা

ইনপুট বিবেচনা করুন ['4444' 10 '333' 10 '22']

10H   % Push 10 (code point of LF). Push 2
      % STACK: 10, 2
&XX   % Regexp with three arguments. First argument is implicit input (string);
      % second is 2, which indicates that we want to split the input; third is
      % 10, which is the character to split on. The result is a cell array of
      % matched strings
      % STACK: {'4444', '333', '22'}
o     % Concatenate into a numeric 2D array of code points, right-padding with
      % zeros if needed
      % STACK: [52 52 52 52; 51 51 51 0; 50 50 0 0]
t&n   % Duplicate. Push number of rows and number of columns
      % STACK: [52 52 52 52; 51 51 51 0; 50 50 0 0], 3, 4
=     % Are they equal?
      % STACK: [52 52 52 52; 51 51 51 0; 50 50 0 0], 0
h     % Concatenate into a row vector (in column-major order). Implicit display
      % STACK: [52 51 50 52 51 50 52 51 0 52 0 0 0]

3

আর, 35 বাইট

all(nchar(x<-scan(,""))==length(x))

স্টিডিন থেকে ইনপুট নেয়। প্রতিটি লাইনের অক্ষরের সংখ্যা মোট রেখার সংখ্যার সমান কিনা তা পরীক্ষা করে। ফিরে আসে TRUEবা FALSEযথাযথ হিসাবে


নোট করুন যে ইনপুটগুলি উদ্ধৃতিতে আবৃত হওয়া দরকার বা এটি প্রতিটি লাইনের মধ্যে ফাঁকা স্থানগুলি ভেঙে যেতে পারে।
জিউসেপে

2

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

s=>(a=s.split`
`,a.every(l=>l.length==a.length))




2

কিউবিআইসি , 43 বাইট

{_?~_lA||h=h+1┘g=g+_lA|~g%_lA||_Xp]\_xg/h=h

আমি, কিউ বেসিক ডেরিভেটিভ এই চ্যালেঞ্জটি চালিয়ে যেতে কতটা সংক্ষেপে পেরে আমি খুশি happy

ব্যাখ্যা:

{_?       DO infinitely: ask the user for input, store as A$
~    |    IF
 _lA|       The length of A$   (implicitly <> 0)
h=h+1     Add 1 to our line counter
┘         (syntactic linebreak)
g=g+_lA|  Add the length of this line to the running total of line lengths
~      |  IF
 g%_lA|     The length of the running total modulo the length of the last string
            yields anything but 0, there is a discrepancy between earlier line
            lengths and this one.
_Xp]      THEN QUIT, printing 0, end IF
\         ELSE (refers to the LEN(A$), user didn't input anything.
_xg/h=h   QUIT (the inf. loop) printing -1 if the root of the chars is the row count
            or 0 if not.

2

পাইথ, 7 বাইট

qCC.z.z

প্রদর্শন

ইনপুটটি দু'বার কাটা দিয়ে ট্রান্সপোজ করুন, তারপরে ফলাফলটি আসলটির মতো কিনা তা পরীক্ষা করে দেখুন।


2

রুবি, 50 বাইট

s=$<.read.split $/,-1;p [s.size]==s.map(&:size)|[]

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

ব্যাখ্যা

  1. নিউলাইনে অ্যারে ইনপুট বিভক্ত করুন।
  2. জোর করে নিন যে এই অ্যারের কেবলমাত্র আকার যুক্ত একটি অ্যারে এই অ্যারের সমস্ত উপাদানগুলির সমস্ত ইউনিট (খালি অ্যারের সাথে ইউনিয়ন সেট) যুক্ত একটি অ্যারের সমান।

1
.split($/,-1);->.split $/,-1;
ক্রিস্টোফার লেটস

এর linesপরিবর্তে readএবং তারপরে আরও বেশি কিছু সঞ্চয় করুন split(তবে তারপরে আপনাকে 1 যুক্ত করতে হবে sizeকারণ লাইনগুলি পিছনে নতুন লাইনের অন্তর্ভুক্ত রয়েছে)
জিবি


1

Clojure, 58 বাইট

#(let[s(re-seq #"[^\n]+"%)c count](apply =(c s)(map c s)))

আরও একটি icalন্দ্রজালিক কিছু দেখার প্রত্যাশায় একটি ট্রেলিং নিউলাইন দরকার।


1

এপিএল (ডায়ালগ) , 17 বাইট

প্রয়োজন ⎕ML←3অনেক সিস্টেমে পূর্বনির্ধারিত। সিআর ব্যবহার করে।

↓∘⎕FMT≡⎕TC[2]∘≠⊂⊢

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

↓∘⎕FMT বিভক্ত-মধ্যে-লাইন [হয়] এফ বা আছি একটি টন টেড-মধ্যে-একটি-বর্গক্ষেত্র যুক্তি

 অনুরূপ

⎕TC[2]∘≠ দ্য-গ্রুপ-অফ-অ-নিউলাইন * -চ্যাকার্টরগুলি

 পার্টিশন করা

 যুক্তি?

* টি এরমিনাল সি অনট্রোল অক্ষরের তালিকার দ্বিতীয় উপাদান ।


সংস্করণ 16.0 ইন, এক লিখতে পারেন ↓∘⎕FMT≡⎕TC[3]∘≠⊆⊢সঙ্গে ⎕ML←1


কৌতুহলী, কি ⎕ML?
পাভেল

1
@ ফিনিক্স ডায়ালগ এপিএল এবং এপিএল + তে, এম আইগ্রেশন এল ইভল আইবিএম এর এপিএল 2 এর দিকে দ্বান্দ্বিক আন্দোলনের জন্য মোটামুটি একটি পদক্ষেপ। সংখ্যা যত বেশি, ততই এপিএল 2-এর মতো ভাষা হয়ে যায়। এপিএল 2 থেকে অন্যান্য এপিএলগুলিতে স্থানান্তরিত লোকেরা উচ্চের সাথে চালানোর ঝোঁক থাকে ⎕ML, অন্য ব্যক্তিরা যে এপিএল দিয়ে শুরু করেছিল তারা কম নিয়ে চলার ঝোঁক থাকে ⎕ML
অ্যাডম

1

পাওয়ারশেল, 64 বাইট

একই (বিভক্ত, রেখার দৈর্ঘ্য, রেখার সংখ্যা) অন্যান্য নন-গল্ফ ভাষার উত্তর হিসাবে যোগাযোগ করে, তবে কোনও সুন্দর মানচিত্র () সমতুল্য নয়, সুতরাং এটি শেষের দিকে ট্যাগ রেখার সংখ্যার সাথে লাইন দৈর্ঘ্যের একটি অ্যারে, তারপরে সেই অ্যারে দলবদ্ধ করা হয়। স্কোয়ারগুলি এমনভাবে বাইরে আসে 3,3,3,3 -> 1 group, all line lengths and line count were equalএবং অ-স্কোয়ারগুলি এমনভাবে বেরিয়ে আসে 3,2,1 -> 3 groups, স্কোয়ারে কিছু অসম ছিল:

$f={@(@(($L="$args"-split"`n")|% le*)+$L.Count|group).Count-eq1}

নিউলাইন লিনাক্স-স্টাইলের শেষের প্রয়োজন, কোনও ট্রেলিং নিউলাইন নেই। যেমন

$Ttests = @(@'
foo
bar
baz
'@,
'.',
@'
aaaaa
aaaaa
aaaaa
aaaaa
aaaaa
'@
)
$Ttests = $Ttests | foreach {$_ -replace "`r"}

$Ttests | % { & $f $_ }

(এবং আপনি ভুয়া পরীক্ষার জন্যও একই রকম করতে পারেন, তবে তাদের আরও অনেকগুলি আছে বলে আমি এটি এখানে রাখব না)। কয়েক @চিহ্ন যখন ইনপুট একক জন্য প্রয়োজন হয় '.'অন্যথায় বিভাজন এটা শুধু একটা স্ট্রিং তোলে, এবং তারপর অ্যারের সংযুক্তকরণের আউটপুট না এক স্ট্রিং এর একটি অ্যারের দেখা যায় না 1,1এটা আউটপুট 2

আমি আশাবাদী যে এটি সমস্ত অক্ষরকে 'ক' দিয়ে প্রতিস্থাপন করা সংক্ষিপ্ত হতে পারে এবং তারপরে 1 থেকে ইনপুট দৈর্ঘ্য পর্যন্ত সমস্ত স্কোয়ার 'এ' থেকে জোর করে বলবে এবং কোনও ইনপুট মেলে কিনা তা দেখুন। একবার আমি পরম () এবং। দৈর্ঘ্য এবং-জোইন এবং-স্থানটি পেয়েছিলাম এটি 81 বাইটে অনেক দীর্ঘ শেষ হয়:

$f={param($s)!!(1..$s.Length|?{,('a'*$_)*$_-join"`n"-eq($s-replace"[^`n]",'a')})}

1

গ্রিম , 11 বাইট

e`.|_./+/.+

1স্কোয়ার এবং 0অ-স্কোয়ারগুলির জন্য মুদ্রণ । এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

গ্রিম টিউটোরিয়াল পৃষ্ঠায় একটি বিশদ ব্যাখ্যা পাওয়া যাবে , যা উদাহরণস্বরূপ এই সঠিক প্রোগ্রামটি ধারণ করে।

e`.|_./+/.+
e`            Match entire input against pattern:
  .           A single character
   |          OR
    _         a recursive match of this pattern
     ./+      with one column of characters on its right
        /     and below that
         .+   one row of characters.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.