তিন ভাগে বিভক্ত!


16

একটি স্ট্রিং দেওয়া হয়েছে, আপনি এটিকে তিনটি অক্ষরের গ্রুপে বিভক্ত করতে হবে ( _শেষে প্যাডিং দিয়ে)।

সম্পর্কিত , তবে এখনও এটি আলাদা।


নমুনা I / O:

এটি একটি , তাই খুব কম বাইট জিতবে!

সম্পাদনা: অবশেষে, আউটপুট সীমিত নয়


10
বিশেষ ক্ষেত্রে খালি স্ট্রিং কেন? প্যাডিংয়ের জন্য আমরা কোন চরিত্রটি চয়ন করতে পারি?
শেগি

12
সুতরাং টাস্কটি আসলে: একটি স্ট্রিং দেওয়া হয়েছে, খালি থাকলে একটি মিথ্যা মানটি ফিরিয়ে দিন, অন্যথায় এটি তিনটি গ্রুপে বিভক্ত করুন, প্রয়োজনে আন্ডারস্কোর দিয়ে প্যাডিং করুন ? দুটি অসম্পৃক্ত কাজগুলির (স্ট্রিংয়ের দৈর্ঘ্য এবং বিভাজন পরীক্ষা করা) একটি বিজোড় জুটির মতো মনে হচ্ছে।
অ্যাডম

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

6
স্ট্যাটিক্যালি-টাইপ করা অনেকগুলি ভাষা একটি ফাংশন থেকে একাধিক প্রকারের কাছে ফিরে আসতে পারে না
অজ্ঞতার

4
@ মানাসেখ্যাটজ হ্যাঁ, তবে কেবল সেই ভাষাগুলিতে। কিছু ভাষায় এটি সমাধানগুলিকে আরও জটিল করে তোলে, এমনকি এমনকি অসম্ভবকেও (যেমন স্ট্যাটিকালি টাইপ করা ভাষা)।
জো কিং

উত্তর:



8

পাইথন 3, 58 47 34 বাইট

আমি নিশ্চিত যে অন্য কেউ আরও ভাল করতে পারে। ধন্যবাদ জো কিং -11 -24 বাইটের জন্য!

আউটপুট সীমিত নয়, নরককে টুপল করতে স্বাগতম। খালি ইনপুটে খালি তালিকা ( মিথ্যা ) ফেরত দেয়

lambda x:[*zip(*[iter(x+"__")]*3)]

Tio



5

1
15 সঙ্গে "@_\__"=~/.../g। অন্যান্য 16s ছিল: (pop.__)=~/.../gবা map/.../g,pop.__
গ্রিমি

1
থিম থেকে @ গ্রিমি \ এ টিপটির জন্য \ এটি 1 বাইট বন্ধ করে দিয়েছিল এবং আমি নতুন কিছু শিখেছি।
কেজেটিল এস

4

এপিএল + উইন 36 24 22 বাইট

আউটপুট হিসাবে এখন 12 টি বাইট সংরক্ষণ করা হয়েছে যা এখন নিষিদ্ধ হয়ে গেছে এবং @ অ্যাডামের প্রথম মন্তব্যে কোডটি ব্যবহার করে এপিএল + ডব্লিউআইএন-তে কাজ করার জন্য এবং তার দ্বিতীয় মন্তব্যে আরও 2 টি ব্যবহার করা হয়েছে। ধন্যবাদ।

(⌈(↑⍴s)÷3)3⍴(s←⎕),'__'

স্ট্রিংয়ের ইনপুট দেওয়ার জন্য অনুরোধ করে এবং ফলাফলকে একটি এনএক্স 3 অ্যারে হিসাবে আউটপুট করে

এটি অনলাইন চেষ্টা করুন! সৌজন্যে ডায়ালগ ক্লাসিক


@ অ্যাডাম। ডানদিকে APL + WIN এ একটি ডোমেন ত্রুটি ছুড়ে ফেলে ⍴
গ্রাহাম

ব্যর্থ হয় '', না? আমি মনে করি ওপি (কিছু অদ্ভুত কারণে) ফলাফলটি 0(যে কোনও পদক্ষেপের সাথে) হওয়া দরকার।
অ্যাডম

1
@ অ্যাডাম এটি 0 x 3 অ্যারে উত্পাদন করে। ওপি এখন নাল ইনপুটটির জন্য "ভুয়া" চায় বলে মনে হচ্ছে। পরিবর্তনটি অব্যাহত রাখার সাথে সাথে আমি এই মুহুর্তে মাথা নত করতে যাচ্ছি এবং আমার উত্তরটিকে এর স্ট্যান্ড হিসাবে ছেড়ে দেব! আপনার উন্নতির জন্য ধন্যবাদ।
গ্রাহাম

4

জাভাস্ক্রিপ্ট, 51 50 48 27 25

b=>(b+"__").match(/.../g)

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


পিপিসিজিতে আপনাকে স্বাগতম! :) তবে ... কোডগলফ.স্ট্যাকেক্সেঞ্জাওয়েআআআ
শেগি

@ শেগি আমি এমনকি দেখতে পেলাম না যে ¯ \ _ (ツ) _ / ¯
ভিএফডান

কোন উদ্বেগ নেই, এটি ঘটে।
শেজি


3

জাপট , 8 বাইট

+1 বাইটটি বিশেষ ক্ষেত্রে খালি স্ট্রিং করুন। আমরা যদি আমাদের প্যাডিং চরিত্রটি চয়ন করতে পারি তবে 2 সংরক্ষণ করতে পারি।

©ò3 ú'_3

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

©ò3 ú'_3     :Implicit input of string
©            :Logical AND with
 ò3          :Split into chunks of 3
    ú'_3     :Right pad each with "_" to length 3


2

সিজেম , 11 বাইট

q'_3*+3/);p

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

খালি ইনপুটটির জন্য এটি একটি খালি স্ট্রিং দেয় যা মিথ্যা।

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

q     e# Read input as a string
'_    e# Push char '_'
3*    e# String formed by that char repeated 3 times
+     e# Concatenate to input string
3/    e# Split in groups of 3, the last of which may be shorter. Gives array of strings
);    e# Detach last string from the array and delete it
p     e# Print string representation of the array

2

রেটিনা 0.8.2 , 10 বাইট

$
__
!`...

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার কেস অন্তর্ভুক্ত রয়েছে। ব্যাখ্যা:

$
__

দুটি _গ্রুপ যুক্ত করুন, যদি শেষ গ্রুপটি প্যাড করার প্রয়োজন হয়।

!`...

যতগুলি সম্ভব তিনটি গ্রুপের সাথে ম্যাচ করুন, গণনার চেয়ে ম্যাচগুলি নিজেরাই আউটপুট করে ting (রেটিনা 1 এ এটি Lপরিবর্তে হবে !।)



2

ওল্ফ্রাম ভাষা (গণিত) , 28 21 বাইট

-7: Falseখালি ইনপুটটিতে আর মিথ্যা ( ) মান প্রয়োজন হয় না

Partition[#,3,1,1,_]&

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

ইনপুট হিসাবে অক্ষরের একটি তালিকা নেয়। Blankএস ( _) দিয়ে প্যাডযুক্ত অক্ষরের 3-টিপলগুলির একটি তালিকা ফেরত দেয় ।


34 27 বাইট

StringPartition[#<>"__",3]&

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

স্ট্রিং ইনপুট, স্ট্রিং আউটপুটের তালিকা


1

জেলি , 9 বাইট

s3o€“___”

অক্ষরগুলির একটি তালিকা গ্রহণ করে এমন এক লিঙ্ক লিঙ্ক যা অক্ষরের তালিকার একটি তালিকা দেয় (একটি খালি ইনপুট খালি আউটপুট দেয়)।

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

কিভাবে?

s3o€“___” - Link: list of characters
s3        - split into chunks of three
   €      - for each chunk:
  o       -   OR (vectorises):
    “___” -     list of characters = ['_', '_', '_']

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


সমান 9:

o3ÐƤ“___”

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


বিকল্প 9:

;“___”s3Ṗ

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



1

জাভা 10, 116 113 বাইট

s->{s+="__";int l=s.length()/3,i=l;var r=new String[l];for(;i-->0;)r[i]=s.substring(i*3,i*3+3);return l<1?0>1:r;}

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

অথবা 104 101 বাইটের পরিবর্তে যদি খালি অ্যারে falseআউটপুট হিসাবে অনুমোদিত হয় ..

s->{s+="__";int l=s.length()/3;var r=new String[l];for(;l-->0;)r[l]=s.substring(l*3,l*3+3);return r;}

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

ব্যাখ্যা:

s->{                             // Method with String as both parameter and return-type
  s+="__";                       //  Append two "_" to the input-String
  int l=s.length()/3;            //  Get the length, integer-divided by 3
  var r=new String[l];           //  Create a string-array with that many parts
  for(;l-->0;)                   //  Loop `l` in the range (l, 0]:
    r[l]=                        //   Set the `l`'th value of the array to:
         s.substring(l*3,l*3+3); //   Get the substring of size 3 from index `l*3` from `s`
  return r;}                     //  Return the array

একটি খালি অ্যারে এখন অনুমতি দেওয়া হয়
বেঞ্জামিন Urquhart

1

রুবি, 73 42 বাইট

a=gets
a.length!=0?a.scan(/.{1,3}/).map{|s|(s+'_'*3)[0,3]}:'falsey value'

সম্পাদনা করুন: ভুয়া মানটির মতো দেখতে এটির প্রয়োজন নেই:

gets.scan(/.{1,3}/).map{|s|(s+'_'*3)[0,3]}

1
সর্বাধিক প্যাডিং 2 টি অক্ষরের, সুতরাং '_'*2যথেষ্ট হবে, যার জন্য আক্ষরিক '__'সংক্ষিপ্ত। কিন্তু আপনি যদি আগাম প্যাডিং যোগ তারপর কেবল টুকরা খাটো চেয়ে 3 টি অক্ষর মেলে না, খাটো: puts"#{gets}__".scan /.../। (দ্রষ্টব্য যে সুস্পষ্ট মুদ্রণ ব্যতীত বিবেচনা করা হয় irbনা ruby))
ম্যানটওয়ার্ক 20'19

1

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 74 বাইট

ইনপুটটির দৈর্ঘ্য 3 এর ফ্যাক্টর না হলে তারা মুদ্রিত হবে তা নিশ্চিত করার জন্য ইনপুট শেষে কেবল দুটি আন্ডারস্কোর '_' যুক্ত করুন।

s=>Enumerable.Range(0,(s.Length+2)/3).Select(i=>(s+"__").Substring(i*3,3))

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







1

বাশ , 90 বাইট

এটি আরও traditionalতিহ্যবাহী বোর্ন শেল প্লাস * নিক্স কমান্ডের মিশ্রণের চেয়ে বাশ বৈশিষ্ট্যগুলি ব্যবহার করে (যা আমি তৈরি করেছি তার একটি সংস্করণ 205 বাইটে শেষ হয়েছিল)। আমি স্ট্রিংয়ে দু'টি অক্ষর যুক্ত করার ডজ ব্যবহার করে প্রতারণা করেছি।

c=;read a;a=${a}__;while (($(echo ${#a})>2));do b=${a:0:3};c=$c\ $b;a=${a#$b};done;echo $c

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


1

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

$args-split'(...)'-ne''|% *ht 3 '_'

-23 বাইট মজির ধন্যবাদ ।

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


খুশী হলাম। 1) আপনি একটি কোড গণনা করতে পারেন যা একটি পিএস 1-ফাইলের মধ্যে বের করে কার্যকর করা যেতে পারে। 2) শর্টকাট দেখুন । 3) আরও গল্ফ চেষ্টা করুন
মজির

1

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

s:$:__:
s:...:& :g
s: _*$::

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

খালি স্ট্রিং ইনপুট সম্পর্কিত এটি কিছুটা জটিল হয়ে ওঠে, যেহেতু সেডের মিথ্যা মানটির কোনও অর্থ নেই। সুতরাং এটি মোকাবেলা করার জন্য, আমি আপনাকে আমার জমাটি যাচাই করার জন্য নিয়মের দুটি সম্ভাব্য ব্যাখ্যা সরবরাহ করব:


উ: আপনি মূলত ইনপুট হিসাবে কিছুই সরবরাহ করেন না, এমনকি একটি পিছনের নতুন লাইনও নয় (যেমন 6 এমবি ফাইল সহ সমস্ত উদাহরণের ক্ষেত্রে এটি ঘটে)।

ব্যবহার:

echo -n ""|sed -f script

আউটপুট: কিছুই মুদ্রিত হয় না, কারণ সেড ইনপুট ছাড়া স্ক্রিপ্টটি চালায় না।


বি সেডকে একটি অনন্য স্ট্রিং হিসাবে মিথ্যা মান হিসাবে বিবেচনা করতে পারে, যেমন ইনপুটটি খালি স্ট্রিং হয় কেবল তখনই ফিরে আসে।

ব্যবহার:

echo ""|sed -f script

আউটপুট:

__

আমি প্রথম ব্যাখ্যাকে আরও বেশি পছন্দ করি, কারণ আমি বিশ্বাস করি যে এটি নির্ধারিত নিয়মের নিকটতম, তবে শেষটি যদি আপনি এই টিআইও লিঙ্কটি ব্যবহার করে স্ক্রিপ্টটি চালান তবে সহায়তা করে।




0

সংযুক্তি , 34 23 বাইট

PadRight&"_"&3=>@Chop&3

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

ব্যাখ্যা (পুরানো)

{On[#_-1,PadRight&"_"&3,_]}@Chop&3
                           @Chop&3    chop the input string into groups of 3s
{On[#_-1               ,_]}           on the last group
        ,PadRight                         pad it
                     &3                   to length three
                 &"_"                     with underscores

আপনি কেবলমাত্র সর্বশেষের পরিবর্তে সমস্ত উপাদানকে প্যাড করে কোনও কিছু সংরক্ষণ করতে পারবেন ?
শেগি

@ শেগি ভালো পয়েন্ট! আমি এটি সন্ধান করব
কনর ও'ব্রায়েন



0

বেফুঞ্জ -93 , 30 29 বাইট

~:1+%,~:1+!"`"*+,~:1+!"`"*+,,

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

খালি ইনপুট জন্য আউটপুট কিছুই না, অন্যথায় NUL অক্ষর দ্বারা পৃথক 3 দৈর্ঘ্যের স্ট্রিং আউটপুট দেয়।

ব্যাখ্যা:

Input স্ট্যাক করতে ইনপুট অক্ষর পুশ
 : 1+ সদৃশ ইনপুট এবং 1 যুক্ত করুন
    স্ট্যাক এবং ধাক্কা ফলাফলের% মডুলো শীর্ষ 2 মান
                                যদি ইনপুটটি -1 (স্ট্রিমের সমাপ্তি) হয়, তবে -1% 0 -> থামান গণনা করুন
                                অন্যথায় ইনপুট% (ইনপুট + 1) -> ইনপুট গণনা করুন
     , পপ এবং আউটপুট চরিত্র
      Input স্ট্যাক করতে ইনপুট অক্ষর পুশ
       : 1+! সদৃশ ইনপুট, 1 যোগ করুন এবং লজিকাল নয় সম্পাদন করুন
           "` "* ৯ by দ্বারা গুণ করুন ('`' এর জন্য ASCII কোড)
                                এটি নোটের ফলাফলের উপর নির্ভর করে 96 বা 0 প্রদান করে
               + স্ট্যাক থেকে শীর্ষ 2 মান যুক্ত করুন এবং ফলাফল টিপুন
                                যদি ইনপুটটি -1 (স্ট্রিমের শেষ) হয়, -1 + 96 = 95 বা '_' এর জন্য ASCII কোডটি পুশ করে
                                অন্যথায় ইনপুট + 0 ধাক্কা দেয়
                , পপ এবং আউটপুট চরিত্র
                 ~: 1 +! "` "* +, তৃতীয় চরিত্রটি পরিচালনা করতে আবার একই ব্লক
                            , একটি NUL অক্ষর আউটপুট (স্ট্যাক খালি, সুতরাং স্ট্যাক থেকে পপিং 0 ফিরে আসে)

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