একটি সিঁড়ি তৈরি করা যাক


19

নতুনদের জন্য আমাদের কাছে পর্যাপ্ত (আধা) সহজ চ্যালেঞ্জ নেই। ইতিমধ্যে আরও অনেকগুলি সহজে নেওয়া হয়েছে। তাই আমি এমন কিছু নিয়ে আসার চেষ্টা করেছি যা প্রাথমিকভাবে অর্জনযোগ্য হতে পারে তবে এটি কোনও সদৃশ নয়।

ইনপুট:

আপনার ওএস নতুন-লাইন (ie \r\n),
বা একাধিক স্ট্রিং সহ একটি অ্যারে দ্বারা পৃথক করা একটি একক স্ট্রিং।

আউটপুট - সিঁড়ি :

সমস্ত অ-বর্ণমালা এবং অ-সংখ্যা চিহ্নগুলি সরিয়ে ফেলুন। সুতরাং যা কিছু বাকি আছে [A-Za-z0-9]। এবং তারপরে 'সিঁড়ি তৈরি করুন'; মূলত নীচে সবচেয়ে ক্ষুদ্রতম এবং প্রস্থে দৈর্ঘ্যের উপর তাদের অর্ডার করুন।

চ্যালেঞ্জ বিধি:

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

সাধারণ নিয়ম:

  • ইনপুটটি STDIN এবং এতে কেবল ASCII অক্ষর রয়েছে। এবং আউটপুটটি STDOUT।
  • আউটপুট ক্ষেত্রে অবশ্যই ইনপুট একই হবে।
  • প্রতিটি জমা দিতে হবে এমন একটি সম্পূর্ণ প্রোগ্রাম যা আপনাকে সংকলন করতে এবং চালাতে সক্ষম হবে, তাই কেবল কোনও পদ্ধতি / ফাংশন নয়। সম্পাদনা: আমি বরং নতুন, তাই সম্ভবত এখন থেকে ডিফল্টটি ব্যবহার করা আরও ভাল , যদিও আমি নিজে একটি সম্পূর্ণ প্রোগ্রাম পছন্দ করি। ইতিমধ্যে একটি সম্পূর্ণ প্রোগ্রাম পোস্ট করেছে এমন প্রত্যেকের জন্য দুঃখিত। সম্পাদনা করতে নির্দ্বিধায়, এবং আমি পরের বার মিড চ্যালেঞ্জ পোস্টটি পরিবর্তন না করার চেষ্টা করব।
  • এটি , তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তর ins আমি সম্ভবত এখন থেকে এক বছরের মধ্যে সংক্ষিপ্ত উত্তর গ্রহণ করি।
    কোড-গল্ফের উত্তরগুলি আপনাকে সি # এবং একই মত গল্ফযুক্ত নন-কোডগল্ফ ভাষা পোস্ট করা থেকে নিরুৎসাহিত করবেন না! যে কোনও প্রোগ্রামিং ভাষার জন্য সংক্ষিপ্ত উত্তরটি উপস্থিত করার চেষ্টা করুন।
  • এই প্রশ্নের চেয়ে নতুন ভাষা ব্যবহার করতে নির্দ্বিধায়।

পরীক্ষার কেস:

ইনপুট 1:

This is a sample text,
that you will have to use to build stairs.
The wood may be of excellent quality,
or pretty crappy almost falling apart and filled with termites.
Bla bla bla - some more text
Ok, that will do

আউটপুট 1:

Okthatwilldo
Thisisasampletext
Blablablasomemoretext
Thewoodmaybeofexcellentquality
thatyouwillhavetousetobuildstairs
orprettycrappyalmostfallingapartandfilledwithtermites

ইনপুট 2:

A
small
one
that
contains
equal
length
strings
for
the
special
rule

আউটপুট 2:

A                   Or alternatively:       A
length                                      length
oneforthe                                   theforone
smallequal                                  equalsmall
stringsspecial                              specialstrings
thatrulecontains                            containsrulethat

পদক্ষেপ 2 ব্যাখ্যা:

দৈর্ঘ্যে প্রথম অর্ডার:

A
one
for
the
that
rule
small
equal
length
strings
special
contains

প্রথম মার্জ:

A
oneforthe
thatrule
smallequal
length
stringsspecial
contains

দৈর্ঘ্যের উপর দ্বিতীয় ক্রম:

A
length
thatrule
contains
oneforthe
smallequal
stringsspecial

দ্বিতীয় সংশ্লেষ:

A
length
thatrulecontains
oneforthe
smallequal
stringsspecial

দৈর্ঘ্যে তৃতীয় ক্রম:

A
length
oneforthe
smallequal
stringsspecial
thatrulecontains

ইনপুট 3:

Test,
test.
This
is
a
test.

আউটপুট 3:

a                   Or alternatively:       a
is                                          is
TesttestThistest                            testThistestTest

ইনপুট 4:

a
bc
d!
123

আউটপুট 4:

123     Or alternatively:    123
adbc                         dabc

1
containsআউটপুট ২-এ থাকার কথা নয়। এটি একীভূত হয়ে যায়thatrule
কেইটিঞ্জ

2
আপনি যা চেয়েছিলেন তার ঠিক বিপরীতে আপনি পেয়েছেন, এটি করা বেশ শক্ত।
বিলিন্ট

"এই প্রশ্নের চেয়ে নতুন ভাষা ব্যবহার করতে নির্দ্বিধায়" - সুতরাং, আমি যদি একটি ভাষা তৈরি করি তবে কেবল 0 বাইটে এই চ্যালেঞ্জটি সমাধান করার জন্য, এটি প্রযুক্তিগতভাবে আইনী, তাই না?
বিলিন্ট

এই চ্যালেঞ্জটি কি স্যান্ডবক্সে ছিল?
বিলিন্ট

1
@ নিমিমি আমি ব্যক্তিগতভাবে সত্যই একটি পূর্ণ প্রোগ্রাম পছন্দ করি তবে আপনি যদি সত্যিই জোর করেন তবে আমি এখনই এটি সরিয়ে ফেলতে পারি এবং সবাই ডিফল্ট ব্যবহার করতে পারে .. আমি বরং নতুন, তাই সম্ভবত এখন থেকে ডিফল্টটি ব্যবহার করা আরও ভাল। ইতিমধ্যে একটি সম্পূর্ণ প্রোগ্রাম পোস্ট করেছে এমন প্রত্যেকের জন্য দুঃখিত। সম্পাদনা করতে নির্দ্বিধায়, এবং আমি পরের বার নিয়ম মিড চ্যালেঞ্জ সুযোগ না করার চেষ্টা করব।
কেভিন ক্রুইজসেন

উত্তর:


4

হুশ , 11 বাইট

ωȯmΣġLÖLmf□

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

এই চ্যালেঞ্জের চেয়ে হুশ কম বয়সী (যা আনুষ্ঠানিকভাবে কোনও পার্থক্য করে না, তবে এখনও)।

ব্যাখ্যা

ωȯmΣġLÖLmf□  Implicit input (list of strings), say ["a","bc","d!","123"]
        mf□  Keep only alphanumeric chars of each: ["a","bc","d","123"]
ωȯ           Repeat until fixed point is reached:
      ÖL       Sort by length: ["a","d","bc","123"]
    ġL         Group by length: [["a","d"],["bc"],["123"]]
  mΣ           Concatenate each group: ["ad","bc","123"]
             Final result ["123","adbc"], print implicitly separated by newlines.

যখন "প্রত্যেকের কেবলমাত্র বর্ণমালার অক্ষর mf□রাখি " হয় , আপনার হিংসা করা উচিত। যখন "গ্রুপ অনুসারে দৈর্ঘ্য" হয় ġL, আপনি অবাক হওয়া উচিত।
এরিক দ্য আউটগল্ফার

আমি এখন আপনার উত্তর গ্রহণ করেছি। নতুন মেটা হ'ল চ্যালেঞ্জের চেয়ে নতুন ভাষা ব্যবহার করা যেতে পারে (এবং আমি এটি পোস্ট করার আগে আমার চ্যালেঞ্জটিতে ইতিমধ্যে উল্লেখ করেছি)। আগে যেমন বলেছি, সুন্দর উত্তর!
কেভিন ক্রুইজসেন

4

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

আমি কোড গল্ফে ভাল না তাই আমি আত্মবিশ্বাসী এটি পাইথন 3 সেরা উত্তর হবে না। এটি প্রতিটি দৈর্ঘ্যের জন্য সমস্ত শব্দ সহ পুনরাবৃত্তি এবং একটি আদেশযুক্ত ডিক ব্যবহার করে।

from collections import*
def f(i):
 d = defaultdict(list)
 for l in i: x = "".join(c for c in l if c.isalnum());d[len(x)].append(x)
 n = (sorted(["".join(d[z]) for z in d.keys()], key=len))
 if n == i:return "\n".join(n)
 return f(n)
print(f(eval(input())))

স্টিডিন থেকে একটি তালিকা হিসাবে ইনপুট নেয়, উদাহরণস্বরূপ, এই তালিকা দিয়ে এটি পরীক্ষা করুন:

['A', 'small', 'one', 'that', 'contains', 'equal', 'length', 'strings', 'for', 'the', 'special', 'rule']

আউটপুট দেবে:

A
length
oneforthe
smallequal
stringsspecial
thatrulecontains

1
দুর্দান্ত উত্তর! গল্ফ করার বিষয়ে কয়েকটি পরামর্শ: 1) আপনার চারপাশে = চিহ্ন বা == চিহ্নের প্রয়োজন নেই। ২) পাইথন কীওয়ার্ডগুলি সনাক্ত করতে পারে যদি এটি জানে যে এটি অন্য পরিবর্তনশীল নাম হতে পারে না, যেমন আপনি "," রিটার্ন "। N" "এর জন্য" আমদানি * "(প্রাক্তন।") দিয়ে যা করেছিলেন like 3) আমি যথেষ্ট নিশ্চিত (ইতিবাচক নয়) আপনার চারপাশে বাছাই করা প্রথম বন্ধনী প্রয়োজন নেই ()। শুভ কোডিং!
ব্লু

আপনি অংশটির filter(str.isalnum, l)পরিবর্তে ব্যবহার করতে পারেন"".join
njzk2

4

রেটিনা, 69 63 বাইট

[^ \ W¶] |: _

{ `\ বি ((।) + +) ¶ ((?)। + +) \ খ (? (2) (?!))
$ 1 $ 3
হে $ `(।) + +
$ # 1 $ *

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


আমি মনে করি আপনি প্রথম লাইনে পরিবর্তন করতে পারেন [^\w¶]|_। যদিও আমি এখনও নিশ্চিত নই যে এটি সর্বোত্তম।
FryAmTheEggman

3

ওরাকল এসকিউএল 11.2, 346 বাইট

ইনপুট স্ট্রিংয়ের লাইনগুলি '¤' দ্বারা পৃথক করা হয়। এইভাবে ইনপুট হিসাবে ব্যবহার করার জন্য কোনও সারণী তৈরি করা প্রয়োজন হয় না।

This is a sample textthat you will have to use to build stairsThe wood may be of excellent qualityor pretty crappy almost falling apart and filled with termitesBla bla bla - some more text¤Ok, that will do
A¤small¤one¤that¤contains¤equal¤length¤strings¤for¤the¤special¤rule
TesttestThis¤is¤a¤test         

প্রশ্ন :

WITH v AS(SELECT REGEXP_REPLACE(COLUMN_VALUE,'[^a-zA-Z0-9]')s FROM XMLTABLE(('"'||REPLACE(:1,'¤','","')||'"'))),r(s,i,l)AS(SELECT s,1,1 FROM v UNION ALL SELECT LISTAGG(s)WITHIN GROUP(ORDER BY s)OVER(PARTITION BY LENGTH(s)),ROW_NUMBER()OVER(PARTITION BY LENGTH(s)ORDER BY s),l+1 FROM r WHERE l<LENGTH(:1)AND i=1)SELECT s FROM r WHERE l=LENGTH(:1);  

আন golfed

WITH v AS
( 
  -- Splits on ¤ and keeps only alphanum characters 
  SELECT REGEXP_REPLACE(COLUMN_VALUE,'[^a-zA-Z0-9]')s FROM XMLTABLE(('"'||REPLACE(:1,'¤','","')||'"'))
)
-- Recursive view 
-- s : string
-- i : index of the string in case of duplicates
-- l : exit condition
,r(s,i,l)AS
(
  -- Start with every element of the input
  SELECT s,1,1 FROM v
  UNION ALL
  SELECT -- Concatenate elements of the same lengths
         LISTAGG(s)WITHIN GROUP(ORDER BY s)OVER(PARTITION BY LENGTH(s))
         -- Index of elements of the same length (listagg with over generates duplicates)
        ,ROW_NUMBER()OVER(PARTITION BY LENGTH(s) ORDER BY s)
        -- exit condition
        ,l+1 FROM r WHERE l<LENGTH(:1) AND i=1
)
-- Keep only the elements from the last iteration (automaticaly sorted on my system)
SELECT s FROM r WHERE l=LENGTH(:1)  

আপনি আপনার [\W_]
রিজেক্সটি

@ ফ্লাইফি এটি ',' এবং 'মুছে না। শেষ পরীক্ষার ক্ষেত্রে
জেটো

অদ্ভুত ... কিন্তু আপনি এখনও প্রতিস্থাপন করতে পারে 0-9সঙ্গে \d। অজগর / পিএইচপি / জাভাস্ক্রিপ্টের চেয়ে রিজেক্সের নিয়মগুলি স্ক্যালে আলাদা? (জেএস এখনও নজরদারিগুলির কারণে একটি বিশেষ কেস)
ফ্লাইফি

2

হাস্কেল, 129 বাইট

import Data.List
import Data.Char
l=length
print.(foldl(const.map concat.groupBy((.l).(==).l).sortOn l)=<<(filter isAlphaNum<$>))

স্ট্রিংগুলির একটি অ্যারে গ্রহণ করে এবং মুদ্রণ করে। যদি ফলাফলটি ফাংশন থেকে ফিরে আসতে পারে (স্ট্যান্ডআউটে মুদ্রিতের বিপরীতে), আপনি বাদ দিতে পারেন print.এবং 6 বাইট সংরক্ষণ করতে পারেন ।

এটি কীভাবে কাজ করে (দ্রষ্টব্য, আমি xইনপুট প্যারামিটারের জন্য ব্যবহার করি যা অবশ্যই উপরের পয়েন্টফ্রি সংস্করণে উপস্থিত হয় না):

 (    )=<<(     )          -- (f =<< g) x is f (g x) x, so we fold over x with a
                           -- starting value of:
     filter isAlphaNum<$>x -- keep only alphanumeric chars in every line of x

                           -- during folding, I ignore the the elements of x.
                           -- However folding stops the repeatedly applied function
                           -- after (length x) steps, which is enough for combining
                           -- lines of equal length

 const                     -- ignore elements from x, deal only with start value
                sortOn l   -- sort lines from shortest to longest
      groupBy((.l).(==).l) -- group lines of equal length
    map concat             -- concatenate each group      

print                      -- print result after (length x) iterations

2

পাইথন 3, 184 180 বাইট

def f(x):l=len;m=filter;y=sorted([''.join(m(str.isalnum,i))for i in x],key=l);*z,=m(l,[''.join(i for i in y if-~j==l(i))for j in range(l(y[-1]))]);y==z and+print(*z,sep='\n')or f(z)

একটি ফাংশন যা স্ট্রিংগুলির তালিকা হিসাবে যুক্তি দ্বারা ইনপুট নেয় এবং ফলাফলটি STDOUT এ মুদ্রণ করে। এক্সিকিউশন একটি ত্রুটি উত্থাপন করে (মুদ্রণ বিবৃতি দেওয়ার আগে + অপারেটর ব্যবহারের কারণে), তবে আউটপুট মুদ্রণের আগে নয়।

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

def f(x):                              Function with input of list of strings
l=len;m=filter                         Redefine much-used functions: len gives the length
                                       of an object and filter chooses those items from an
                                       iterable for which a function is true
[''.join(m(str.isalnum,i))for i in x]  Strip to leave only alphanumeric characters...
y=sorted(...,key=l)                    ...and sort by length, into y
''.join(i for i in y if-~j==l(i))      Concatenate equal length strings...
[...for j in range(l(y[-1]))]          ...for all possible string lengths...
*z,=(m(l,...))                         ...and remove empty strings by filtering by length
                                       (the empty string has length 0, and is thus false),
                                       into z
y==z and+print(*z,sep='\n')...         If no change after concatenation, no more equal
                                       length strings exist, so print result to STDOUT...
...or f(z)                             ...else pass new list to function

আইডিয়নে চেষ্টা করে দেখুন


2

জে , 48 বাইট

[:(/:#&>)[:(#&>,&.>//.])^:_(#~e.&AlphaNum_j_)&.>

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

ungolfed

[: (/: #&>) [: (#&> ,&.>//. ])^:_ (#~e.&AlphaNum_j_)&.>

ব্যাখ্যা

  • (#~e.&AlphaNum_j_)&.> অ আলফানাম মুছে ফেলুন
  • (#&> ,&.>//. ]) একই দৈর্ঘ্যের আইটেম একত্রিত করুন
  • ^:_ এটি পরিবর্তন না হওয়া অবধি একত্রিত থাকুন
  • (/: #&>) দৈর্ঘ্য অনুসারে বাছাই করুন

1

জাভাস্ক্রিপ্ট 198 188 186 179 বাইট

এটি আমার দ্বিতীয় দীর্ঘতম গল্ফড জাভাস্ক্রিপ্ট প্রোগ্রাম

s=>s.replace(/[^\w]|_/g,``,l=0).split(/\s/g).sort(g=(a,b)=>a[m=`length`]-b[m]).reduce((a,b,c)=>a+(a.split(/\s/g)[c-1][m]<b[m]?`
`:` `)+b).replace(/ /g,``).split`
`.sort(g).join`
`

সম্ভবত আরও গল্ফ করা যেতে পারে


আপনি কি tজন্য পরিবর্তনশীল ব্যবহার করবেন?
gcampbell

ঠিক আছে তাই আপনি y = "স্প্লিট" ঘোষণা করে গল্ফ করতে পারেন এবং তারপরে .split()আপনি ব্যবহার না করে ব্যবহার করতে পারেন[y]()
বাল্ড বান্থা

@ জিক্যাম্পবেল এটি টেস্টিংয়ের মাত্র একটি বাকী ছিল
বুলিন্ট

@ বাল্ডবাঁথা আমার মনে হয় না এটি এটিকে আরও সংক্ষিপ্ত করে তুলবে
বালিন্ট

@ বাল্ডব্যান্থা যদিও আমি দৈর্ঘ্য সহ এটি করেছি
বালিন্ট


1

জেলি , 17 বাইট

f€ØWṖ¤L€Ġị⁸Ẏ€µÐLY

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

নিশ্চিত না যে কেন Ẏf¥€ØWṖ¤L€ĠịµÐLYকাজ করে না ...

ব্যাখ্যা:

f€ØWṖ¤L€Ġị⁸Ẏ€µÐLY Full program
             µÐL  Execute the following until we get a result a second time
     ¤              The following as a nilad
  ØW                  [A-Za-z0-9_]
    Ṗ                 Remove last element (_)
f€                  Filter the left argument (current result) with the above nilad
       €            Left map
      L               Length
        Ġ           Group indices of same values, sort values
          ⁸         Left argument
         ị          Index on ^^ and ^
            €       Left map
           Ẏ          Concatenate elements
                Y Join on newlines (full program will display correctly)

1

পাইথ, 22 বাইট

jlDusM.glkG@Ls++GrG1UT

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

ব্যাখ্যা:

jlDusM.glkG@Ls++GrG1UT
j                      join on newlines
 lD                     sort by length
   u                     run until duplicate result, return result (argument G, iteration number H)
    sM                    map concatenate elements
      .g                   group elements by function (argument k)
        l                   length
         k                   k
          G                 G
           @L             left map filter on presence (extra argument first)
             s             concatenate elements
              +             concatenate two items
               +             concatenate two items
                G             G (default = lowercase alphabet)
                 r 1          to uppercase
                  G            G
                    U        unary range [0..n)
                     T        T (default = 10)

1

পাইথ, 39 বাইট

ফিরে গল্ফিং!

প্রোগ্রামটি রয়েছে:

=Qm:d"[\W_]"kQKYLmsd.glkolNb;WnKQ=KQ=yQ;jQ

=Qm:d"[\W_]"kQLmsd.glkolNb;WnYQ=YQ=yQ;j

এখানে পরীক্ষা!

ব্যাখ্যা

=Qm:d"[\W_]"kQLmsd.glkolNb;WnYQ=YQ=yQ;j       (Implicit) Assign evaluated imput to Q (In this case, an array)
=Q                                            Reassign a value to Q
  m          Q                                map a function over Q
   :d"[\W_]"k                                 Replace any special character with an empty string
              L           ;                   Declare a function y(b)
                      olNb                      Sort b by length
                  .glk                          Group strings of same length in arrays
               msd                              Concat each inner array
                           WnYQ      ;        While Y != Q (previous array is not equal to current array)
                               =YQ              Assign the current array to Y (Y=Q)
                                  =yQ           Assign y(Q) to Q (Q=yQ). Here, the assigned variable name is implicit
                                      j       Display the resulting array

এর পরিবর্তে Rএবং এর Lপরিবর্তে ব্যবহার করার চেষ্টা করুনm
লিকি নুন

1

জাভা 8, 268 বাইট

একটি অকার্যকর ল্যাম্বদা একটি পরিবর্তনীয় List<String>(যেমন সরঞ্জাম addএবং remove; যেমন ArrayList) গ্রহণ করে accepting আউটপুটটি স্ট্যান্ডার্ড আউট এ মুদ্রিত হয়, নতুন লাইনের মাধ্যমে সীমানা অনুসারে একটি নতুন পেইজ থাকে। কাস্ট Consumer<List<String>>

l->{int i=0,z;while(i<l.size())l.set(i,l.get(i++).replaceAll("\\W| ",""));while(l.size()>0){l.sort((s,t)->s.length()-t.length());String s=l.remove(0);for(i=0,z=s.length();l.size()>0&&l.get(0).length()==z;i++)s+=l.remove(0);if(i<1)System.out.println(s);else l.add(s);}}

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

এটি আমার প্রত্যাশার চেয়ে অনেক বেশি দীর্ঘ হয়েছিল। কেভিন যেমন পর্যবেক্ষণ করেছেন, এটি প্রথম নজরে দেখে মনে হয় তার চেয়ে জটিল।

অবহেলিত ল্যাম্বদা

l -> {
    int i = 0, z;
    while (i < l.size())
        l.set(i, l.get(i++).replaceAll("\\W| ", ""));
    while (l.size() > 0) {
        l.sort((s, t) -> s.length() - t.length());
        String s = l.remove(0);
        for (
            i = 0, z = s.length();
            l.size() > 0 && l.get(0).length() == z;
            i++
        )
            s += l.remove(0);
        if (i < 1)
            System.out.println(s);
        else
            l.add(s);
    }
}

প্রথমত, আমি অক্ষরে এবং সংখ্যাগুলিতে জায়গায় ইনপুট হ্রাস করি। আমি তারপরে দৈর্ঘ্য অনুসারে গ্রুপগুলির ইনপুটগুলি প্রক্রিয়া করি। পরবর্তী দৈর্ঘ্য না হওয়া পর্যন্ত আমি তালিকার প্রথমটিতে আইটেমগুলি সংযোজন করি, সেগুলি আমার চলার সাথে সরিয়ে ফেলা হয়। যদি কেবলমাত্র প্রথম উপাদানটি ব্যবহৃত হয়, তবে এটি দৈর্ঘ্যের একমাত্র স্ট্রিং হবে, সুতরাং এটি মুদ্রিত। অন্যথায়, যুক্ত স্ট্রিংটি অন্য পুনরাবৃত্তির জন্য তালিকায় যুক্ত করা হয়। আমি ব্যবহারের আগে প্রতিটি পুনরাবৃত্তি দৈর্ঘ্য অনুসারে তালিকাটি সাজান।

আমি একটি সুন্দর সমাধান দিয়ে শুরু করেছি যা মধ্যবর্তী স্ট্রিংগুলি ট্র্যাক রাখতে অগ্রাধিকারের সারি ব্যবহার করে। দুর্ভাগ্যক্রমে, java.util.PriorityQueue<String>বেশ দীর্ঘ (এবং কাঁচা ধরণের ব্যবহারটি দীর্ঘ ছিল), তাই এটি যেতে হয়েছিল।


1

জাপট v2.0a1-h , 11 বাইট

স্ট্রিংগুলির অ্যারে হিসাবে ইনপুট এবং আউটপুট।

£=mk\W üÊmq

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

£=mk\L üÊmq
                :Implicit input of string array U
£               :Map
  m             :  Map U
   k            :    Remove
    \W          :    /[^A-Z0-9]/gi
       ü        :  Sort & partition by
        Ê       :    Length
         m      :  Map
          q     :    Join
 =              :  Reassign to U for next iteration
                :Implicit output of last element

যদিও আমি এটির জন্য পরীক্ষার কেসগুলি যুক্ত করতে ভুলে গিয়েছি (এখন একটি যুক্ত করব), অঙ্কগুলিও স্ট্রিংগুলিতে রাখা উচিত (তার [a-zA-Z0-9]পরিবর্তে [a-zA-Z])।
কেভিন ক্রুইজসেন

@ কেভিন ক্রুইজসেন, স্থির
শেগি

1

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

আমার মনে হচ্ছে এটি আরও খাটো হওয়া উচিত ...

আউটপুটে 2 শীর্ষস্থানীয় নিউলাইনগুলি অন্তর্ভুক্ত করে।

f=s=>s==(s.replace(/[^\w\n]|_/g,t=``).split`
`.sort((x,y)=>x[l=`length`]-y[l]).map(x=>t+=s==(s=x[l])?x:`
`+x),t)?t:f(t)

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


নেতিবাচক চরিত্র পরিসীমা একটি বিশ্বব্যাপী পতাকা অনুমান করা, তাই আপনি ড্রপ করতে পারেন বলে মনে হয় g118 জন্য
জানুয়ারী


তারপর এটি পুনরাবৃত্তির হতে হবে, এখনও আপনি বিশ্বব্যাপী পতাকা ড্রপ করতে পারেন
জানুয়ারী

@Jan, যে ব্যর্থ হবে, যেমন, tio.run/##TY3NDoIwEITvfQtuuxHqnWTxQQDdikUxtSV0ozXx3fEn/...
রোমশ


1

পাইথ, 21 বাইট

jusM.glkG:R"[^\w\d]"k

ইনপুট স্ট্রিংগুলির একটি তালিকা। এটি এখানে অনলাইনে চেষ্টা করুন , বা সমস্ত পরীক্ষার কেস এখানে যাচাই করুন

jusM.glkG:R"[^\w\d]"kQ   Implicit: Q=eval(input()), k=""
                         Trailing Q inferred
          R          Q   For each string in Q...
         : "[^\w\d]"     ... replace non-alphanumerics...
                    k    ... with k (empty string)
 u                       Repeat the following until a fixed point occurs, current as G:
    .g  G                  Group the elements of G...
      lk                   ... by length
                             Groups ordered by the result of the inner function, i.e. length
                             This means that, in the final iteration, this acts as a sort by length
  sM                       Concatenate each group back into a string
j                        Join the resulting list on newlines, implicit print

0

05 এ বি 1 ই , 16 বাইট

εžKÃ}»Δ¶¡é.γg}J»

স্ট্রিংগুলির তালিকা হিসাবে ইনপুট করুন।

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

εžKÃ}Δé.γg}J}»যদি 14 বাইট হতে পারেΔ পাশাপাশি স্ট্রিং একটি তালিকা সঙ্গে কাজ করবে ..

ব্যাখ্যা:

ε   }            # Map the (implicit) input-list of strings:
 žjà             #  Leave only the letters and digits of each string
                 #   i.e. ["a","bc","d!","123"] → ["a","bc","d","123"]
     »           # Join the list by newlines to a single string
                 #  i.e. ["a","bc","d","123"] → "a\nbc\nd\n123"
      Δ          # Loop until the string no longer changes:
       ¶¡        #  Split by newlines
                 #   i.e. "a\nbc\nd\n123" → ["a","bc","d","123"]
          }    #  Group the strings by:
           g     #   Their length
                 #    i.e. ["a","bc","d","123"] → [["a,"d"],["bc"],["123"]]
             J   #  Join each group-list to a single string
                 #   i.e. [["a,"d"],["bc"],["123"]] → ["ad","bc","123"]
              »  #  Join this list by newlines again
                 #   i.e. ["ad","bc","123"] → "ad\nbc\n123"
                 # (and the result is output implicitly after the loop)
                 #  i.e. "123\nadbc"

-1

পাওয়ারশেল, উইন্ডোজ 10, 63 বাইট

সুতরাং ইনপুট ...

$n = @"
This is a sample text,
that you will have to use to build stairs.
The wood may be of excellent quality,
or pretty crappy almost falling apart and filled with termites.
Bla bla bla - some more text
Ok, that will do
"@

এবং কোড ...

((($n -Split '\n').Replace(" ","")) -Replace '[\W]','')|Sort *h

এতে ইনপুট / আউটপুট 1, 2 এবং 3 এ কাজ করে ...


পিপিসিজিতে আপনাকে স্বাগতম! আমরা সাধারণত একটি ভেরিয়েবল সেট করে ইনপুটটিকে অনুমতি দিই না। আপনাকে হয় এমন একটি ফাংশন তৈরি করতে হবে যা একটি আর্গুমেন্ট গ্রহণ করে, বা এসটিডিআইএন, কোনও কমান্ড লাইন আরগ বা অনুরূপ থেকে ইনপুট নেবে।
স্টিফেন

1
পিপিসিজিতে আপনাকে স্বাগতম! @ স্টেপহেন যা বলেছিলেন তা ছাড়াও, আপনি বর্তমান উত্তরটি বিশেষ ক্ষেত্রে ব্যর্থ হন। এটি কেবল সমস্ত কিছু একসাথে রাখে এবং একবারে বাছাই করে তবে এটি সম-আকারের রেখাগুলি এক সাথে মার্জ করে না এবং আবার বাছাই করে। (পরীক্ষার কেস ২ দেখুন))
কেভিন ক্রুইজসেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.