আয়তক্ষেত্রাকার কোড সহ আয়তক্ষেত্রাকার পাঠ সনাক্ত করুন


19

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

একটি স্ট্রিং আয়তক্ষেত্রাকার হয় যদি এটি নিম্নলিখিত সমস্ত শর্ত পূরণ করে:

  1. প্রথম লাইন এবং শেষ লাইনে কোনও স্থান নেই।
  2. প্রতিটি লাইনের প্রথম এবং শেষ চরিত্রটি কোনও স্থান নয়।
  3. সমস্ত লাইনে অক্ষরের সংখ্যা একই থাকে।

উদাহরণস্বরূপ, নিম্নলিখিত পাঠ্যটি আয়তক্ষেত্রাকার:

abcd
e fg
hijk

এই পাঠ্যটি অবশ্য আয়তক্ষেত্রাকার নয় (প্রয়োজনীয় # 3):

1234
567
8900

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

Truthy:

sdghajksfg
asdf
jkl;
qwerty
u i op
zxcvbn
1234
5  6
7890
abcd
e fg
hijk

Falsey:

a b c
123
456
7 9
12
345
qwerty
 uiop
zxcvnm
1234
567
8900

এটি , তাই বাইটগুলির মধ্যে সংক্ষিপ্ততম সমাধানটি জিতে।




9
সুতরাং, কোনও স্থান ছাড়াই একটি ওয়ান-লাইনার একটি বৈধ জমা, সঠিক?
আর্নাউল্ড


1
আমরা কি প্রতিটি লাইনের জন্য একটি স্ট্রিংয়ের অ্যারে হিসাবে ইনপুট নিতে পারি? বা আমাদের কি একটি একক দীর্ঘ স্ট্রিং ইনপুট করা উচিত যা লাইন ব্রেকগুলি অন্তর্ভুক্ত করে?
ব্র্যাডিসি

উত্তর:


12

সি (জিসিসি) , 127 125 124 118 বাইট

  • Golfing দুটি বাইট সংরক্ষিত r*=!e&(!t|t==c);করার r>>=e||t&&t-c;(এই গল্ফটি আমার সাম্প্রতিক সি টিপসের উত্তরের বিপরীত পতাকা আপডেটের অনুপ্রেরণা ছিল ))
  • Golfing দ্বারা একটি বাইট সংরক্ষিত *(_-2)করার _[~1]
  • ইনক্রিমেন্টটি গল্ফ *_++-10||(...)করার *_++<11?...:0জন্য স্থানধারক শূন্যে ...:0(যা গঠনমূলকভাবে ব্যবহৃত হয় না) গল্ফ করে এবং ব্যবহার করে ছয়টি বাইট সংরক্ষণ করা হয়েছে c++। এই গল্ফগুলি আরও কিছু লুপ রদবদলের অনুমতি দিয়েছে।
  • যখন কেউ একাধিক মিথ্যা মান ব্যবহার করতে পারে , 114 বাইটগুলি সম্ভব হতে পারে।
r,e,c,t;_(char*_){for(r=1,t=c=0;*_;*_++<11?r*=(t||(t=c,!e))&*_>32&_[~1]>32&t==c,c=e=0:c++)*_-32||(e=1);r>>=e||t&&t-c;}

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

দীর্ঘতর আয়তক্ষেত্র অর্জনের উত্স বিন্যাস achie

ব্যাখ্যা

নিম্নলিখিত 124 বাইট দীর্ঘ সংস্করণ ব্যাখ্যা করে।

r,e,c,t;_(char*_){     // `r` is the boolean result flag, `e` a boolean flag if the current line contains
                       //  a space, `t` the first line's width, `c` the current line's current width
 for(r=1,t=c=0;*_;c++) // initialize, loop through entire string
  *_-32||              // if the current char is a space,
   (e=1),              //  the current line contains a space
  *_++-10||            // if the current char is a newline (char pointer `_` now incremented)
   (r*=(t||(t=c,!e))   // if t is not yet set, the current line is the first line; set it
                       //  to this line's length, check that no spaces where found
    &*_>32             // the next line's first char should not be a space
    &_[~1]>32          // this line's last char should not have been a space
    &t==c,c=~0,e=0);   // the line lengths should match, reset `c` and `e` to zero
                       //  (`~0 == -1`, countering the loop's increment of `c`)
 r>>=e||t&&t-c;}       // return boolean flag, check that the last line does not contain spaces,
                       //  there was either no newline or line lengths match
                       //  (here) equivalent to `r*=!e&(!t|t==c)`

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



4

জাভা 10, 214 176 169 152 144 139 বাইট

s->{String[]a=s.split("\n")
;int r=1,i=0,R=a.length;for
(;i<R;i++)if(i<1|i>R-2?a[i]
.contains(" "):a[i].trim( )
!=a[i])r=0;return-r<0;}////

-5 বাইট @ নীল ধন্যবাদ

String[]aপরিবর্তে ব্যবহার var a; return-r<0;পরিবর্তে return r>0;; এবং একটি মন্তব্য যুক্ত// একেবারে শেষে , সুতরাং প্রথম এবং শেষ সারিগুলিতে ফাঁকা স্থান নেই।

নোট করুন যে এই আয়তক্ষেত্রটি একটি একক-লাইন ইনপুটের চেয়ে কম, কারণ int r=1,...;এটি দিয়ে প্রতিস্থাপন করা উচিত int[]v{1,...};এবং পূর্ণসংখ্যার সমস্ত ব্যবহার তারপরে পরিণত হবে v[n](যেখানে এন অ্যারেতে চলকের সূচক হয় v)।

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

ব্যাখ্যা:

s->{                        // Method with String parameter and boolean return-type
  String[]a=s.split("\n");  //  Input split by new-lines
  int r=1,                  //  Result-integer, starting at 1
      i=0,                  //  Index `i`, starting at 0
      R=a.length;           //  Amount of rows `R`
  for(;i<R;i++)             //  Loop `i` over the rows
    if(i<1                  //   If it's the first row,
       |i>R-2?              //   or the last row:
        a[i].contains(" ")  //   And the current row contains a space
       :a[i].trim()!=a[i])  //   Or either column of the current row contains a space
      r=0;                  //    Set the result `r` to 0
   return-r<0;}             //  Return whether `r` is still 1
////                        // Comment to comply to the rules of the challenge

স্পেস ( 128 126 বাইট ) সহ একই বেস প্রোগ্রাম এখানে রয়েছে :

s->{var a=s.split("\n");int r=1,i=0,R=a.length;for(;i<R;i++)if(i<1|i>R-2?a[i].contains(" "):a[i].trim()!=a[i])r=0;return r>0;}

-2 ধন্যবাদ বাইট @Neil

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



3

টি-এসকিউএল, 237 207 বাইট

SELECT(SELECT(IIF(max(len(v))=min(len(v)),1,0)*IIF(SUM(len(v+'x')-len
(trim(v))-1)=0,1,0))FROM t)*(SELECT(IIF(SUM(charindex(' ',v))=0,1,0))
FROM[t]WHERE[i]IN(SELECT(min(i))FROM[t]UNION(SELECT(max(i))FROM[t])))

আয়তক্ষেত্রের জন্য আউটপুট 1, অন্যথায় 0। শূন্যস্থানগুলি দূর করতে আমাকে প্রচুর অতিরিক্ত পেরেন এবং বন্ধনী ব্যবহার করতে হয়েছিল, আমি নিশ্চিত যে উন্নতির জন্য বিশাল জায়গা রয়েছে।

ব্যাখ্যা :

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

CREATE TABLE t (i INT IDENTITY(1,1), v VARCHAR(999))

মূলত আমার এসকিউএল 3 টি সাবকিউরি সম্পাদন করে, যার প্রতিটি প্রত্যাবর্তন করে 0বা 1"আয়তক্ষেত্রাকার" কোডের 3 মানদণ্ডের উপর ভিত্তি করে। এই 3 টি মানগুলি একসাথে গুণিত হয়, কেবল 1কোডের জন্য ফেরত যা সমস্ত 3 কে সন্তুষ্ট করে।

সম্পাদনা করুন : স্থান বাঁচাতে একই SELECT এ 2 এবং 3 এর মিলিত মাপদণ্ড

SELECT(
SELECT(IIF(max(len(v))=min(len(v)),1,0)                  --All rows same length
      *IIF(SUM(len(v+'x')-len(trim(v))-1)=0,1,0))FROM t) --no leading or trailing spaces
*(SELECT(IIF(SUM(charindex(' ',v))=0,1,0))               --No spaces at all in
FROM[t]WHERE[i]IN(SELECT(min(i))FROM[t]                  --   first row or
            UNION(SELECT(max(i))FROM[t])))               --   last row

TRIM(v)ফাংশনটি কেবল এসকিউএল 2017 এবং তারপরের দ্বারা সমর্থিত। পূর্ববর্তী সংস্করণগুলির প্রয়োজন হবে LTRIM(RTRIM(v)), যার জন্য সারিগুলির পুনরায় ভারসাম্য প্রয়োজন।

একটি এলোমেলো নোট: LEN()এসকিউএল-তে ফাংশনটি স্থানের স্থানগুলিকে উপেক্ষা করে LEN('foo ') = 3। একটি "সত্য" দৈর্ঘ্য পেতে আপনাকে শেষ পর্যন্ত একটি অক্ষর পরীক্ষা করতে হবে তারপরে একটিটি বিয়োগ করুন: পি


3

সি ++, 199 183 181 175 বাইট

এই টেমপ্লেট ফাংশনটি পুনরাবৃত্তির জুড়ি হিসাবে পাস করা স্ট্রিংগুলির সংকলন (যা প্রশস্ত স্ট্রিং হতে পারে) হিসাবে গ্রহণ করে।

#include<algorithm>//
template<class I>bool
f(I a,I b){return!~+(
*a+b[-1]).find(' ')&&
std::all_of(a,b,[&a](
auto&s){return' '+-s.
back()&&s[0]-' '&&a->
size()==s.size();});}

সদস্য এর সদস্য সম্পর্কে আমাকে মনে করিয়ে দেওয়ার জন্য এবং এটি নির্দেশ করার জন্য ব্যবহারকারী ভ্রান্তির কারণে ধন্যবাদback()std::stringnpos+1 এটি শূন্যের ।

অসমাপ্ত সমতুল্য

একমাত্র আসল গল্ফিং হ'ল প্রথম এবং শেষ লাইনগুলিকে একত্রিত করা যাতে আমরা findসেই জায়গাগুলির জন্য একটি একক সঞ্চালন করতে পারি ।

#include <algorithm>
template<class It>
bool f(It a, It b)
{
    return (*a+b[-1]).find(' ') == a->npos
        && std::all_of(a, b,
                       [=](auto s) {
                           return s.back() != ' '
                               && s.front() != ' '
                               && s.size() == a->size(); });
}

পরীক্ষা প্রোগ্রাম

#include <iostream>
#include <string>
#include <vector>
int expect(const std::vector<std::string>& v, bool expected)
{
    bool actual = f(v.begin(), v.end());
    if (actual == expected) return 0;
    std::cerr << "FAILED " << (expected ? "truthy" : "falsey") << " test\n";
    for (auto const& e: v)
        std::cerr << "  |" << e << "|\n";
    return 1;
}
int expect_true(const std::vector<std::string>& v) { return expect(v, true); }
int expect_false(const std::vector<std::string>& v) { return expect(v, false); }
int main()
{
    return
        // tests from the question
        + expect_true({"sdghajksfg"})
        + expect_true({"asdf", "jkl;",})
        + expect_true({"qwerty", "u i op", "zxcvbn",})
        + expect_true({"1234", "5  6", "7890",})
        + expect_true({"abcd", "e fg", "hijk",})
        + expect_false({"a b c",})
        + expect_false({"123", "456", "7 9",})
        + expect_false({"12", "345",})
        + expect_false({"qwerty", " uiop", "zxcvnm",})
        + expect_false({"1234", "567", "8900",})
        // extra tests for leading and trailing space
        + expect_false({"123", " 56", "789"})
        + expect_false({"123", "45 ", "789"})
        // the function source
        + expect_true({"#include<algorithm>//",
                       "template<class I>bool",
                       "f(I a,I b){return!~+(",
                       "*a+b[-1]).find(' ')&&",
                       "std::all_of(a,b,[&a](",
                       "auto&s){return' '+-s.",
                       "back()&&s[0]-' '&&a->",
                       "size()==s.size();});}",})
        ;
}

এই বিষয়ে আরও 22 একটি লাইন প্রস্থ সঙ্গে 183 বাইট golfed যেতে পারে, ব্যবহার .find(' ')+1==0, এবং s.back()পরিবর্তে *s.rbegin()
ভ্রান্ত




2

Haskell, , 79 বাইট

g(x:r)=all((==(0<$x)).(0<$))r&&all(>='!')(x++last(x:r)++(head<$>r)++(last<$>r))

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

প্যাটার্নটি g(x:r)= ...প্রথম রেখার সাথে আবদ্ধ xএবং (সম্ভবত খালি) বাকী রেখাগুলির তালিকা r। তারপরে all((==(0<$x)).(0<$))rপরীক্ষা করে দেখুন যে সমস্ত লাইনের rদৈর্ঘ্য একই x( দৈর্ঘ্য) হিসাবে রয়েছে এই টিপটি ) রয়েছে ।

যদি তা না হয়, তবে সংযোগ &&শর্ট সার্কিট এবং ফিরে আসে False, অন্যথায় ডান হাতটি মূল্যায়ন করা হয়। সেখানে একটি স্ট্রিং তৈরি করা হয়েছে যা xপ্রথম লাইনের last(x:r)জন্য, অথবা শেষ লাইনের r(অথবা ক্ষেত্রে প্রথম লাইনটি rখালি খালি) এবং প্রতিটি লাইনের (head<$>r)প্রথম এবং (last<$>r)শেষ অক্ষরের জন্য রয়েছে। এই স্ট্রিংয়ের জন্য all(>='!')এটি পরীক্ষা করে যে এটিতে কোনও স্পেস (>' ')নেই the (উত্স কোডের সীমাবদ্ধতার কারণে আমরা ব্যবহার করতে পারি না )।


"\ N \ n" এ ত্রুটি
অ্যাঙ্গস

@ অ্যাঙ্গস ভাল ধরা। ভাগ্যক্রমে, ওপি স্পষ্ট করে জানিয়েছে যে ইনপুটটি contains at least one character that is neither a newline nor a spaceখালি তালিকার কেসটিকে ফেলে দিতে পারে।
লাইকনি

ওহ সুন্দর, যোগ করা হচ্ছে তা লক্ষ্য করেননি
অ্যাঙ্গস

2

এমএটিএল , 13 বাইট

ctgF6Lt&()32>

বিন্যাসে ইনপুটটি স্ট্রিংগুলির একটি অ্যারে {'abc' 'de'}

আউটপুট হল এমন একটি অ্যারে যা কেবল থাকে সত্যবাদী বা কমপক্ষে শূন্যযুক্ত একটি অ্যারে থাকে যা মিথ্যা

এটি অনলাইন চেষ্টা করুন! অথবা সত্যতা / মিথ্যা পরীক্ষা সহ সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা

c       % Implicit input. Convert to char. This concatenates the
        % strings of the input cell array as rows of a rectangular
        % char array, right-padding with spaces as needed
tg      % Duplicate, convert to logical. Gives a logical array with
        % the same size containing true in all its entries
F       % Push false
6L      % Push the array [2, j-1], where j is the imaginary unit.
        % When used as an index, this is interpreted as 2:end-1
t       % Duplicate
&(      % Assignment indexing with 4 inputs: original array, new
        % value, two indexing arrays. This writes false at the inner
        % rectangle (2:end-1)×(2:end-1) of the logical array that
        % initially only contained true. This will be used as a
        % logical index (mask) into the rectangular char array
)       % Reference indexing. This selects the border of the char
        % array. The result is a column vector of chars
32>     % Is each entry greater than 32? (ASCII code for space)
        % Implicit display

11 বাইট: cO6Lt&(32=~ এটি অনলাইন চেষ্টা করুন! কেবল সীমানা ছাড়ানো অংশগুলি শূন্য করে, তারপরে কোনও স্থান রয়েছে কিনা তা পরীক্ষা করে দেখুন।
সূন্দর - মনিকা পুনরায় ইনস্টল করুন

@ সুন্দর ভাল ধারণা! এটি যথেষ্ট আলাদা, এটি নিজে পোস্ট করুন
লুইস মেন্ডো

1
নাহ, খুব আপনার উত্তর অনুরূপ মতানুযায়ী, বিশেষ করে যদি আমি লিখতে cF6Lt&(32=~। এটিকে সম্পাদনা করতে নির্দ্বিধায়, বা না থাকলে আমরা কেবল মন্তব্যগুলিতে রেখে যেতে পারি।
সূন্দর - মনিকা পুনরায় ইনস্টল করুন


1

ক্যানভাস , 17 15 বাইট

4[↷K;}┐){SL]∑4≡

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

ব্যাখ্যা (মনোস্পেসের জন্য ASCII-fied):

4[↷K;}┐){SL]∑4=  full program; pushes the input to the stack.
4[   }           repeat 4 times
  ↷                rotate ToS clockwise. This also pads the input with spaces
   K;              take off the last line and put it below the item
      ┐          pop the remaining of the input (the center)
       )         and wrap the rest (the sides) in an array
        {  ]     map over those
         S         split on spaces - should result to one item in the array
          L        and get the length
            ∑    sum those lengths together
             4=  check if equal 4

4
আমি এটি বিদ্রূপজনক মনে করি যে কোনও ইউএসএফ 8 অক্ষর একটি মনোস্পেসের মতো ফন্টে অনুভূতি দেয় যে উত্সটিতে অনেকগুলি স্থান রয়েছে। (কমপক্ষে, তারা আমার ব্রাউজারে করে))
আর্নল্ড

1
@ আরনল্ড ফুলইউথের চরিত্রগুলি এটি করে। এবং সে কারণেই আমি আমার দোভাষীকে তাদের সুন্দর করার জন্য একটি ফন্ট তৈরি করেছি: পি
জাজায়মা


1

লাল , 216 191 বাইট

func[s][d:(length?(first(s:(split(s)"^/"))))sp:
func[a][none = find a" "]b: on foreach c s[b: b
and(d = length? c )and(c/1 <>" ")and(" "<> last
c)]res:(sp(first(s)))and(sp(last(s)))and(b)res]

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

আমি প্রথম এবং শেষ সারিগুলিতে প্রচুর অন্যথায় প্রয়োজনীয় বন্ধনীগুলি রেখেছি।


0

জেলি , 17 বাইট

Ỵµ.ịЀ;ịɗẎ⁶e<L€E$

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


@ জোনাথানফ্রেচ আহ, স্থির > _>
এরিক আউটগল্ফার

@ ম্যাজিক অ্যাক্টোপাস ইউরান হাহ? আপনি দয়া করে এমন কোনও ইনপুটটিতে লিঙ্ক করতে পারেন যেখানে এটি সঠিকভাবে আচরণ করে না?
এরিক আউটগল্ফার

ওহ, না, আপনি আমার জন্য ডেকেছিলেন ঠিক তেমনই Does not seem to enforce equal line lengthআমি বলছিলাম।
ম্যাজিক অক্টোপাস উরন


1
@ অ্যাংগস এটি উদ্ধৃত করার চেষ্টা করুন। আপনি যদি এটির মতো রাখেন তবে দৃশ্যত এটিকে কিছুই হিসাবে বিভক্ত করা যায়।
এরিক দ্য আউটগল্ফার

0

জেলি , 15 বাইট

একটি (বর্তমানে - একটি এজ-কেস ব্যর্থতার কারণে) পাইথ জমা দেওয়া মোনেমনোমিক দ্বারা বিকাশিত একটি পদ্ধতি ব্যবহার করে। (যদি এটি এখন স্থির হয় তবে কিছু ক্রেডিট দিন !)

ỴµL€Eȧt€⁶ZUƊ4¡⁼

অক্ষরগুলির একটি তালিকা গ্রহণ করে একটি মোনাডিক লিঙ্ক যা 1 বা 0 প্রদান করে।

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

কিভাবে?

ỴµL€Eȧt€⁶ZUƊ4¡⁼ - Link: list of characters
Ỵ               - split at newlines (making a list of lists - the rows)
 µ              - start a new monadic chain, call that ROWS
  L€            - length of €ach row in ROWS
    E           - all equal? (an integer: 1 if so, otherwise 0)
            4¡  - repeat four times:
           Ɗ    -   last three links as a monad:
      t€⁶       -     trim spaces (⁶) from €ach row in current ROWS
         Z      -     transpose that result
          U     -     upend (reverse each new row)
     ȧ          - logical AND (0 if L€E was 0 else the result of the repeated transform)
              ⁼ - equal to X? (the integer 0 is not equal to any listy of characters)

@ স্মৃতিবিহীন - জেলি ফাইড :)
জনাথন অ্যালান

0

জাপট , 22 বাইট

নন - প্রতিরক্ষামূলক উত্তর: জাপটে একটি পরিচিত বাগ রয়েছে , যেখানে দ্বি-মাত্রিক অ্যারে ঘূর্ণন ফলাফলগুলি কেটে দেয়। ত্রুটির কারণে নীচের কোডটি কেবল বর্গক্ষেত্রের ইনপুটগুলিতে কাজ করে। বাগটি উপস্থিত না থাকলেও, নীচের কোডটি পুরোপুরি সঠিকভাবে কাজ করা উচিত।

e_ʶUÌÊéUeº4o)r_z)mx}U
e_                      // Check if every line in the input array
  ʶUÌÊ                 // has the same length as the last item.
       é               // Also,
               r_z)mx}U // check if rotating and trimming the input array
           º4o)         // four times
         Ue             // is equal to the input array.

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


0

রুবি 2.5+, 63 বাইট

->a{!a.uniq(&:size)[1]&&a.none?(/^\s|\s$/)&&!(a[0]+a[-1])[?\s]}

স্ট্রিংগুলির অ্যারে হিসাবে ইনপুট নেয়। কোনও পরীক্ষার লিঙ্ক নেই, যেহেতু টিআইওর সংস্করণ (২.৪) এটির জন্য পুরানো। পরিবর্তে, পরীক্ষার জন্য এখানে কিছুটা দীর্ঘ (69 বাইট) সংস্করণ রয়েছে:

->a{!a.uniq(&:size)[1]&&a.none?{|l|l=~/^\s|\s$/}&&!(a[0]+a[-1])[?\s]}

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

পার্থক্যটি হ'ল যেহেতু 2.5 রুবি সরাসরি all?, any?, none?পদ্ধতিগুলিতে একটি রেজেক্স প্যাটার্নটি পাস করার পক্ষে সমর্থন করে যা আমাদের কয়েকটি বাইট সংরক্ষণ করে। পদ্ধতিটি নিজেই বেশ স্ব-বর্ণনামূলক - আমরা পরীক্ষা করি:

  1. যদি মাত্র 1 টি অনন্য লাইনের আকার হয়
  2. লাইনের সীমানায় যদি কোনও ফাঁক থাকে
  3. যদি প্রথম এবং শেষ লাইনে ফাঁক থাকে।


0

সি # (.নেট কোর) , 145 167 বাইট

S[0].Length>1&&S[0].IndexOf
(" ") + S[ S.Count() - 1 ].
IndexOf(" ")<-1&Array.Find(
S,x=>x[0]==' '| x [x.Length
-1]  ==  ' '  | S[0].Length
!=x.Length)==null?11>0:0>1;

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

S[0].Length>1&                                    // And if the lenght of the first argument is more than 1 char
Array.Find(                                       // Find a string in an array
    S,                                            // The array which will be searched in
    x=>                                           // For x as the current string from the array
    x.Length!=S[0].Length|                        // If the string lenght match not the first argument lenght
    x[0]==' '|                                    // Or if the string begins with a spacer
    x[x.Length-1]==' '                            // Or if the string ends with a spacer
)==null&                                          // And if there was no string found which matched the conditions
S[0].IndexOf(" ")+S[S.Count()-1].IndexOf(" ")<-1  // And if the first and last string doesn't have a spacer
?                                                 // If all above is true do
1>0                                               // Return True
:                                                 // Else
0>1                                               // Return False

প্রথম লাইনে কোনও স্থান নেই।
ফ্রাউনফ্রোগ 8

@ ফ্রাউনফ্রোগ S[0].IndexOf(" ")প্রথম লাইনে একটি স্থান S[S.Count()-1].IndexOf(" ")অনুসন্ধান করছে এবং শেষ লাইনে অনুসন্ধান করছে। প্রথম এবং শেষ লাইনে জায়গা না হয়, তাহলে এটি -2 যা পরে এ সত্য হয় -2 < -1
হিলি

2
আমি চ্যালেঞ্জ বলতে চাইছি, আপনার কোডেরও একই বাধা আছে, তাই আপনার প্রথম লাইনে স্পেস থাকতে পারে না।
ফ্রাউনফ্রোগ

1
Trueআপনার প্রোগ্রামে পাস করার সময় আপনার কোডটি অবশ্যই ফিরে আসতে হবে । এটি এই চ্যালেঞ্জের অতিরিক্ত বাধা।
ফ্রাউনফ্রোগ 11

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