বর্ণমালার স্নিপেটে স্ট্রিং হ্রাস করুন


25

কেবলমাত্র নিম্ন এবং উপরের বর্ণানুক্রমিক অক্ষর এবং স্পেসগুলি ( [a-zA-Z ]) নিয়ে গঠিত একটি খালি খালি স্ট্রিং দেওয়া হয়েছে , এটি প্রথম অক্ষর দিয়ে শুরু করে বর্ণমালার স্নিপেটে হ্রাস করুন।

একটি স্ট্রিং হ্রাস করতে, প্রথম বর্ণমালা অক্ষর দিয়ে শুরু করুন, তারপরে প্রতিটি অক্ষর মুছে ফেলুন যা বর্ণমালার পরবর্তী অক্ষর নয়। আপনি স্ট্রিংয়ের শেষে না পৌঁছা পর্যন্ত এটি করা চালিয়ে যান।

উদাহরণস্বরূপ codegolf:

দিয়ে শুরু c, অপসারণ oযেমন বর্ণমালার পরবর্তী চিঠি নয়।
রাখুন dযেমন হয় বর্ণমালার পরবর্তী চিঠি, এবং রাখা eযেমন পরবর্তী চিঠি অত্যধিক।
সরান g, oএবং l, এবং রাখুন f

আপনার চূড়ান্ত স্নিপেটটি তখন হবে cdef

বিধি

  • মূলধন বজায় রাখা উচিত, CodEgolFফলস্বরূপ হবেCdEF
  • স্থান বর্ণমালার একটি অক্ষর নয় এবং এভাবে স্ট্রিংয়ের শুরু হলেও এটি সর্বদা অপসারণ করা উচিত
  • হ্রাসের প্রকৃতির কারণে, ইনপুটটির প্রথম বর্ণানুক্রমিক অক্ষর সর্বদা আউটপুটের প্রথম অক্ষর হবে।
  • zZবর্ণমালার শেষ বর্ণ এর পরে কোনও অক্ষর নেই, বর্ণমালা লুপ হয় না।

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

codegolf -> cdef
CodEgolf -> CdEf
 codeolfg -> cdefg
ProgrammingPuzzles -> P
Stack Exchange -> St
The quick red fox jumped over the lazy brown dog -> Tuvw
Zebra -> Z
Abcdegfhijkl -> Abcdef

স্কোরিং

এটি , তাই প্রতিটি ভাষায় স্বল্পতম বাইট জিততে পারে!


দ্বিতীয় সর্বশেষ পরীক্ষার মামলা থেকে, আমি দেখতে পাচ্ছি যে আমরা যদি পৌঁছে যাই zআমরা ঠিক থামি, তাই না?
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার সঠিক, "বিধি" এর অধীনে শেষ পয়েন্টটি দেখুন
স্কিডেদেব

2
শুরুতে কোনও স্থানের সাথে একটি পরীক্ষার কেস যুক্ত করুন। লাইক:<space>codegolf
মিঃ এক্সকোডার

আমি কি আউটপুট অক্ষরের একটি অ্যারে ফিরিয়ে দিতে পারি?
TheLethalCoder

1
@ মিঃ এক্সকোডার হ্যাঁ আপনি পারেন
স্কিডসদেব

উত্তর:


12

জাভাস্ক্রিপ্ট (ES6), 66 79 68 67 বাইট

f=([c,...s],p)=>c?(p?~parseInt(c+p,36)%37:c<'!')?f(s,p):c+f(s,c):''

কিভাবে?

পরপর চিঠিগুলি পরীক্ষা করা হচ্ছে

দুটি অক্ষরকে তাদের এএসসিআইআই কোডগুলিতে রূপান্তর করা জেএসের পরিবর্তে দীর্ঘতর ক্রিয়াকলাপ হবে, এর পরিবর্তে আমরা নিম্নলিখিত সূত্রটি ব্যবহার করি:

~parseInt(b + a, 36) % 37

প্রদত্ত যে এবং উভয়ই রয়েছে [a-zA-Z ], উপরের অভিব্যক্তিটি সমান 0এবং যদি কেবলমাত্র a এবং b ধারাবাহিক অক্ষর হয় (অর্থাত্ বেস ৩ 36 এ ধারাবাহিক সংখ্যা), অক্ষরের ক্ষেত্রে কোনও ব্যাপার না।

এই ক্ষেত্রে:

~parseInt("Y" + "x", 36) = ~(36 * parseInt("Y", 36) + parseInt("x", 36))
                         = ~(36 * 34 + 33)
                         = -(36 * 34 + 33 + 1)
                         = -(37 * 34)

ফর্ম্যাট এবং মন্তব্য

f = ([c,                              // c = current character
         ...s],                       // s = array of remaining characters
                p) =>                 // p = previous matching letter
  c ? (                               // if there's still at least 1 character to process:
      p ?                             //   if p was already defined:
        ~parseInt(c + p, 36) % 37     //     test if p and c are NON-consecutive letters
      :                               //   else:
        c < '!'                       //     test if c is a space character
    ) ?                               //   if the above test passes:
      f(s, p)                         //     ignore c and keep the current value of p
    :                                 //   else:
      c + f(s, c)                     //     append c to the final result and update p to c
  :                                   // else:
    ''                                //   stop recursion

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


7

পাইথন 2 , 69 বাইট

lambda s:reduce(lambda x,y:x+y*((ord(y)-ord(x[~0]))%32==1),s.strip())

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

স্ট্রিংয়ের একটি সাধারণ হ্রাস। আমরা কেবলমাত্র পরবর্তী চরিত্রটিকে সম্মতি জানাই যদি এবং কেবল যদি (ord(y)-ord(x[~0]))%32==1। খুব কুরুচিপূর্ণ চেক - আমি নিশ্চিত এটির উন্নতি হতে পারে তবে আমি নিশ্চিত না কীভাবে!


চতুর সমাধান! খুব খারাপ এটি পাইথন 2-কেবল: পি
মিঃ এক্সকোডার

আপনি এটি পাইথন 3 এর সাথে সামঞ্জস্যপূর্ণ করতে পারেন from functools import*
সম্পূর্ণমানবিক

1
@ থমাস ওয়ার্ড সম্পূর্ণমানবিক কেবল অন্যকে বলছিল কীভাবে এটি পাইথন 3 সামঞ্জস্যপূর্ণ করা যায়। বিটিডব্লিউ, import functools as fএবং f.এটি from functools import*নিশ্চিত হওয়ার চেয়ে অনেক দীর্ঘ , এমনকি একবার ব্যবহার করা হয়েছে। আরও তথ্যের জন্য এই থ্রেড দেখুন ।
মিঃ এক্সকডার

7

পাইথন 3 , 75 85 84 91 81 77 75 বাইট

আমি মনে করি এটি পাইথন 3- তে যত কম পাওয়া যায় । পাইথন 2-তে এটি কয়েকটি বাইট দ্বারা সংক্ষিপ্ত করা যেতে পারে, যেমন সিসিফাসের জমা দেওয়ার ক্ষেত্রে প্রদর্শিত হয়েছে ।

  • সম্পাদনা করুন: বাগ ঠিক করার জন্য +10
  • সম্পাদনা: -1 অন্য বাগ সংশোধন করে
  • সম্পাদনা করুন: অন্য বাগ ঠিক করার জন্য +7
  • সম্পাদনা করুন: @ রুডের সাহায্যে -10 বাইট
  • সম্পাদনা করুন: -4 বাইটস যখন থেকে ওপি আমাদেরকে একটি নতুন লাইনের দ্বারা পৃথক করা অক্ষরগুলি আউটপুট দেয় allowed
  • সম্পাদনা করুন: -2 বাইটস @ রুডকে ধন্যবাদ , আসল বাইট গণনায় ফিরে!
s=input().strip();k=0
for i in s:
 if(ord(i)-ord(s[0]))%32==k:k+=1;print(i)

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


আমার উন্নতির জন্য ধারণা আছে, তাড়াতাড়ি মোবাইলে গল্ফ করা।
মিঃ এক্সকডার

2
81 বাইট । বড় হাতের অক্ষর এবং ছোট হাতের অক্ষরগুলি 32
সংশোধিত

@ রুড এগুলি হ'ল আমি আমার মন্তব্যে, সম্পাদনায় সেই বিষয়গুলিই বলছিলাম।
মিঃ এক্সকডার


8
আমি অপ্রত্যাশিতদের তাদের কারণগুলি ব্যাখ্যা করার জন্য অপেক্ষা করছি।
মিস্টার এক্সকোডার


4

ব্র্যাচল্যাগ , 15 বাইট

;ṢxS⊇.ḷ~sẠ∧Sh~h

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

এটি 10 ​​বাইট হবে:, ⊇.ḷ~sẠ&h~hযদি এটি মোটামুটি উদ্বেগ না করানো হত তবে "স্ট্রিং স্পেসস" বাধা দিয়ে শুরু করতে পারে।

ব্যাখ্যা

;ṢxS               S is the Input with all spaces removed
   S⊇.             The Output is an ordered subset of the Input
     .ḷ            The Output lowercased…
        ~sẠ          …is a substring of "abcdefghijklmnopqrstuvwxyz"
           ∧
            Sh     The first char of S…
              ~h   …is the first char of the Output

যেহেতু এটি মোটামুটি ঘোষণামূলক, এটি সত্যই ধীর।


আচ্ছা, কমপক্ষে এটি জেলিকে মারছে! এবং, প্লাস দিকে, আমি মনে করি না আপনি সত্যিই এটি ছাড়িয়ে যেতে পারেন ...
এরিক দি আউটগল্ফার

3

এমএটিএল , 18 16 15 বাইট

মিস্টার এক্সকোডারকে একটি ভুল নির্দেশ করার জন্য ধন্যবাদ , এখন সংশোধন করা হয়েছে

Xz1&)"t@hkd1=?@

আউটপুটে অক্ষরগুলি নিউলাইনগুলি দ্বারা পৃথক করা হয়।

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন (ফুটার কোড স্বচ্ছতার জন্য একই লাইনটিতে সমস্ত আউটপুট বর্ণ প্রদর্শন করে)।

ব্যাখ্যা

Xz       % Implicitly input a string. Remove spaces
1&)      % Push first character and then the remaining substring
"        % For each
  t      %   Duplicate previous character
  @      %   Push current character
  h      %   Concatenate both characters
  k      %   Convert to lowercase
  d      %   Consecutive difference. Gives a number
  1=     %   Is it 1?
  ?      %   If so
    @    %     Push current char
         %   End (implicit)
         % End (implicit)
         % Display stack (implicit)

আপনি স্ট্রিংয়ের শুরুতে স্থানগুলি সরিয়ে ফেলতে ভুলে গেছেন: স্পেস বর্ণমালার কোনও অক্ষর নয় এবং এভাবে স্ট্রিংয়ের শুরু হলেও এটি সর্বদা অপসারণ করা উচিত
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার ধন্যবাদ! সংশোধিত
লুইস মেন্ডো

3

জাভা (ওপেনজেডিকে 8) , 102 101 74 বাইট

s->{char c=0;for(char x:s)if(c<1&x>32|~-x%32==c%32)System.out.print(c=x);}

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

-27 বাইটস @ অলিভার গ্রাগোয়ারকে ধন্যবাদ জানায়


1
75 বাইট: s->{char c=0;for(char x:s)if(c<33&x>33|~-x%32==c%32)System.out.print(c=x);}( char[]ইনপুট হিসাবে)
অলিভিয়ার

2

সি # (মনো) , 129 107 93 91 87 বাইট

s=>{var r=s.Trim()[0]+"";foreach(var c in s)if(r[r.Length-1]%32==~-c%32)r+=c;return r;}

@ মিঃ কে 2 বাইট সংরক্ষণ করা হয়েছে Xcoder।
@ জেকেলমকে ধন্যবাদ 4 টি বাইট সংরক্ষণ করুন

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


শীর্ষস্থানীয় স্থানগুলিতে ব্যর্থতা
স্কিডদেব

@ মায়ুব ওয়ুপস এটি দেখেনি, স্থির।
TheLethalCoder

2
91 বাইট । C-মত ভাষা এবং পাইথন, (c-1)%32হয়~-c%32
জনাব Xcoder

1
87 বাইটগুলি লুপের জন্য চেকগুলির কারণে আপনাকে ছাঁটা স্ট্রিং পুনরায় নিয়োগের প্রয়োজন হবে না
জেকলেম

2

পিএইচপি, 64 + 1 বাইট

while($c=$argn[$i++])$c<A||$n&&($c&_)!=$n||(print$c)&$n=++$c&__;

-nRবা সাথে পাইপ হিসাবে চালান করুন এটি অনলাইনে চেষ্টা করুন


এছাড়াও স্বাভাবিক ঠাট থেকে: যখন $cপৌছানোর Z, ++$cফলাফল AA,
এবং &__যে দৈর্ঘ্য অস্পৃষ্ট রাখে; সুতরাং আর $nকোন মিলবে না $c



2

হাস্কেল, 106 105 97 বাইট

import Data.Char
import Data.List
z=ord.toUpper
a%b|z a+1==z b=b|0<3=a
nub.scanl1(%).filter(>' ')

আমি fromEnumআমদানির পরিবর্তে + চর গাণিতিক ব্যবহার করার চেষ্টা করেছি Data.Char, তবে এটি শেষ পর্যন্ত ...

এইচ.পি.উইজকে 8 টি বাইট সংরক্ষিত!

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



অথবা 100 বাইট সঙ্গেData.List
H.PWiz

@ এইচপিউইজ দুর্দান্ত! ধন্যবাদ!
ক্রিশ্চিয়ান লুপাস্কু

2

পাইথ, 21 20 18 বাইট

ef&qhThQhxGrT0tyr6

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

উপায় আরও দক্ষ 20 বাইট সংস্করণ:

.U+b?t-CrZ1Creb1kZr6

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

-১ মিঃ এক্সকোডারকে (পরোক্ষভাবে) ধন্যবাদ thanks


সমান: .U+b?tlrreb1rZ1kZrz6(আমার মনে হয়) সেই কৌশলটি আমাকে সাহায্য করেছিল।
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার যদি এটি একটি সমতুল্য হত তবে আমি একটি বাইট সংরক্ষণ করতে পারতাম .U+b?tlrreb1rZ1kZr6তবে দুর্ভাগ্যবশত এর r <str> 6অর্থ হ'ল A.strip(), অ-নেতৃস্থানীয়-বা-পিছনের শ্বেত স্থানটি সরিয়ে নেই।
এরিক দ্য আউটগল্ফার

ওহ হ্যাঁ, আমি আপনার সমাধানটি সমস্ত জায়গাগুলি সরিয়ে
ফেলার

@ মিঃ এক্সকোডার উম্ম, আপনার সমস্ত স্থান সরিয়ে ফেলা উচিত।
এরিক দ্য আউটগল্ফার

না, আমার উচিত নয়, যেহেতু 32সমস্ত অক্ষর রয়েছে তার মধ্যে স্থানের ASCII মান রয়েছে > 64, এবং এইভাবে কার্যকারিতা প্রভাবিত করে না। আমি মনে করি এটি আপনার উত্তরের ক্ষেত্রেও প্রযোজ্য।
মিস্টার এক্সকোডার

1

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

{S:i:g/\s|(\w){}<([<!before "{chr $0.ord+1}">.]+//}

এটা পরীক্ষা করো

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

{  # bare block lambda with implicit parameter $_

  S                          # substitute implicitly on $_, not in-place
  :ignorecase
  :global
  /

    |  \s                    # match any space

    |  (\w)                  # match a word character
       {}                    # make sure $/ is updated (which $0 uses)

       <(                    # ignore everything before this

       [

           <!before "{       # make sure this won't match after this point
             chr $0.ord + 1  # the next ASCII character
           }">

           .                 # any character

       ]+                    # match it at least once

  //                         # remove what matched
}

দ্রষ্টব্য যে <!before …>শূন্য প্রস্থের প্রতিস্থাপন



1

জাপট , 18 17 16 বাইট

1 শাটগি ধন্যবাদ 1 বাইট সংরক্ষণ করা

x
c
Çc %H¥V%H©V°

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

ভাবছিলাম এটি খুব ভাল খাটো হবে, তবে ... এটাই জীবন ...

ব্যাখ্যা

x    First line: set U to the result.
x    Trim all spaces off of the input. Only necessary to remove leading spaces.

c    Second line: set V to the result.
c    Take the charcode of the first character in U.

 Ç   c %H¥ V%H© V°
UoZ{Zc %H==V%H&&V++}   Final line: output the result.
UoZ{               }   Filter to only the chars in Z where
    Zc                   the charcode of Z
       %H                mod 32
         ==V%H           equals V mod 32.
              &&V++      If true, increment V for the next letter.

আমার 28 বাইট ট্র্যাভেস্টির চেয়ে কম, কমপক্ষে! : ডি দেখে মনে হচ্ছে আপনি প্রতিস্থাপন করতে পারেন rSসঙ্গে x
শেগি

1

সি # (.নেট কোর) , 70 60 + 18 বাইট

-10 বাইটস TheLethalCoder ধন্যবাদ

a=>{var c=a.Trim()[0];return a.Where(x=>x%32==c%32&&++c>0);}

বাইট গণনা এছাড়াও অন্তর্ভুক্ত:

using System.Linq;

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

1 বাইট দীর্ঘ (বর্তমানে) (আর নয়) মজা করার জন্য TheLethalCoder এর তাই পোস্টিং। লিনকু সহ বিভিন্ন পন্থা।

এটি সি # তে দুটি সি-জাতীয় বৈশিষ্ট্যের সুবিধা গ্রহণ করে - একটি অক্ষর charভেরিয়েবল সুস্পষ্টভাবে একটি পূর্ণসংখ্যা হিসাবে একই আচরণ করে int, এবং বুলিয়ান এবং অপারেটর &&যদি বাম দিক থেকে ফিরে আসে তবে ডান ক্রিয়াকলাপ চালায় না false। কোড ব্যাখ্যা:

a =>                                  // Take string as input
{
    var c = a.Trim()[0];              // Delete leading spaces and take first letter
    return a.Where(                   // Filter out characters from the string, leaving those that:
               x => x % 32 == c % 32  // it's the next character in alphabet case-insensitive (thanks to modulo 32 - credits to previous answers)
               && ++c > 0             // If it is, go to the subsequent character in alphabet (and this always has to return true)
           );
}

বাইটস সংরক্ষণ করার জন্য .ToArray()ফিরে আসার মাধ্যমে সরান IEnumerable<char>
TheLethalCoder

@ লেথলকোডার ঠিক আছে, আমি চ্যালেঞ্জের আওতায় মন্তব্যটি দেখেছি। ধন্যবাদ!
গ্রেজগোর্জ পুয়াউস্কি

1

কিউ / কেডিবি +, 47 45 বাইট

সমাধান:

{10h$({(x;x,y)1=mod[y-last x;32]}/)7h$trim x}

উদাহরণ:

q){"c"$({(x;x,y)1=mod[y-last x;32]}/)7h$trim x}"CodEgolf"
"CdEf"
q){"c"$({(x;x,y)1=mod[y-last x;32]}/)7h$trim x}" codeolfg"
"cdefg"
q){"c"$({(x;x,y)1=mod[y-last x;32]}/)7h$trim x}"ProgrammingPuzzles"
"P"
q){"c"$({(x;x,y)1=mod[y-last x;32]}/)7h$trim x}"The quick red fox jumped over the lazy brown dog"
"Tuvw"

ব্যাখ্যা:

ওঠানামা mod 32সহ বিদ্যমান সমাধানগুলো থেকে কৌতুক মিলিত ফাংশন। স্ট্রিংটির উপর দিয়ে ইট্রেট করুন, যদি ফলাফলের শেষ উপাদানের মধ্যে পার্থক্য হয় (উদাহরণস্বরূপ T"দ্রুত লাল শিয়াল ..." দিয়ে শুরু হয় ) এবং বর্তমান অক্ষরটি 1 ( mod32 এর সাথে থাকার পরে ), তবে আমরা এটিতে যুক্ত করব ফলাফল (সুতরাং আমরা কেন নিচ্ছি তা গ্রহণ করে last x), তারপরে সমস্ত কিছু আবার স্ট্রিংয়ে ফেলে দিন।

{10h$({(x;x,y)1=mod[y-last x;32]}/)7h$trim x} / the solution
{                                           } / lambda function
                                      trim x  / trim whitespace (leading/trailing)
                                   7h$        / cast string to ASCII (a -> 97)
     ({                         }/)           / converge
                    y-last x                  / y is the next item in the list, x contains results so far
              1=mod[        ;32]              / is the result mod 32 equal to 1
       (x;x,y)                                / if false, return x, if true return x concatenated with y
 10h$                                         / cast back to characters


0

অক্ষিপট , 76 বাইট

 

^.
$&$&$&¶
{T`@@L@l`@l@l@`..¶
T`l`L`.¶
(.)(.)((¶).*?(\1|\2)|¶.*)
$5$5$5$4

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

 

স্পেস মুছুন।

^.
$&$&$&¶

প্রথম অক্ষরটি তিনটি বার করুন এবং একটি বিভাজক .োকান।

{T`@@L@l`@l@l@`..¶
T`l`L`.¶

দ্বিতীয় এবং তৃতীয় অক্ষরকে নিম্ন কেসে রূপান্তর করুন এবং সেগুলি বৃদ্ধি করুন। উত্তরোত্তরটিকে আপার ক্ষেত্রে রূপান্তর করুন। এগুলি এখন অনুসন্ধানের অক্ষর।

(.)(.)((¶).*?(\1|\2)|¶.*)
$5$5$5$4

উভয় অনুসন্ধান অক্ষরের সাথে মেলে চেষ্টা করুন। যদি খুঁজে পাওয়া যায়, তবে মিলটিকে তিনবার করুন, যা পরবর্তী অনুসন্ধানের জন্য লুপটি পুনরায় আরম্ভ করবে। অন্যথায়, কেবল অনুসন্ধান অক্ষর এবং বাকী ইনপুট মুছুন।


0

8 ম , 114 বাইট

কোড

: z dup n:1+ 32 bor >r "" swap s:+ . ; 
: f s:trim 0 s:@ z ( nip dup 32 bor r@ n:= if rdrop z then ) s:each rdrop ;

ব্যাখ্যা

: z             \ n -- (r: x)
                \ print letter and save on r-stack OR-bitwised ASCII code of following letter
  dup           \ duplicate item on TOS
  n:1+          \ get ASCII code of the following letter
  32 bor        \ bitwise OR of ASCII code and 32 
  >r            \ save result on r-stack
  "" swap s:+ . \ print letter
;

: f        \ s -- 
  s:trim   \ remove trailing whitespace
  0 s:@    \ get 1st letter
  z        \ print 1st letter and save on r-stack OR-bitwised ASCII code of following letter
  ( nip    \ get rid of index
    dup    \ duplicate item on TOS
    32 bor \ bitwise OR of current ASCII code and 32 
    r@     \ get value stored on r-stack
    n:=    \ compare values to see if letter is printable or not
    if 
      rdrop \ clean r-stack
      z     \ print letter and save on r-stack OR-bitwised ASCII code of following letter
    then 
  ) 
  s:each    \ handle each character in string
  rdrop     \ clean r-stack
;

উদাহরণ

ok> " The quick red fox jumped over the lazy brown dog" f
Tuvw



0

পাইথ, 15 বাইট

eo,}r0NG_xQhNty

পরীক্ষা স্যুট

অন্যান্য সমস্ত উত্তরগুলির বিপরীতে, এটি আউটপুটকে একসাথে রাখে না, এটি ইনপুটটির সমস্ত অনুচ্ছেদ তৈরি করে এবং তারপরে তাদের পছন্দসই স্ট্রিংটি শেষে রাখার আদেশ দেয় এবং আউটপুট দেয়।


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

@ এরিকিথআউটগলফার দুঃখিত, আপনি কি উত্তরটি ভুল বলেছেন? আমি নিশ্চিত করেছি যে ক্রমটির প্রথম অক্ষর বর্ণমালার মধ্যে থাকা সমস্ত অনুচ্ছেদের মধ্যে ইনপুটটিতে প্রথম দিকের ক্রমটি শেষ পর্যন্ত বাছাই করা হয়েছে। একটি স্থান দিয়ে শুরু টেস্ট কেস দেখুন।
isaacg

আপনি একটি ব্যাখ্যা যোগ করতে পারেন দয়া করে? আমি ভুল বুঝেছি বা কিছু বুঝতে পেরেছি ...
এরিক দ্য আউটগল্ফার

0

জে, আংশিক সমাধান

আমি অন্য কোনও কিছুর চেয়ে বেশি উন্নতির জন্য প্রতিক্রিয়া এবং ধারণার জন্য এটি পোস্ট করছি। এটি কাজ করে, তবে মূলধন এবং স্থান প্রান্তের কেসগুলি পরিচালনা করে না এবং ইতিমধ্যে জে জন্য দীর্ঘ is

প্রথমে একটি ডায়াডিক সহায়ক ক্রিয়া যা আপনাকে জানায় যে বাম এবং ডান দিকের আঙ্গুলগুলি বর্ণানুক্রমিকভাবে সংলগ্ন কিনা:

g=.(= <:)&(a.&i.)  NB. could save one char with u:

এরপরে এমন ক্রিয়াপদ যা প্রথম উপাদানটিকে সরিয়ে দেয় যা প্রথম উপাদান থেকে শুরু করে বর্ণানুক্রমিক রেখার অংশ নয় :

f=.({~<^:3@>:@i.&0@(0,~2&(g/\))) ::]

দ্রষ্টব্য আমরা প্রতিক্রিয়া ব্যবহার :: যদি কোনও অ-স্ট্রাক উপাদান পাওয়া যায় নি (যেমন, পুরো আর্গুমেন্টটি যদি বৈধ বর্ণানুক্রমিক রেখা থাকে তবে) পুরো আর্গুমেন্টটি অপরিবর্তিত রাখতে ।

পরিশেষে, সমাধানটি fরূপান্তরিত না হওয়া পর্যন্ত প্রয়োগ করে দেওয়া হয় :

f^:_ 'codegolf'  NB. => 'cdef'

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


fসহজেই পড়ার জন্য এখানে একটি পার্সড সংস্করণ দেওয়া হয়েছে :

           ┌─ ~ ─── {                         
           │                              ┌─ <
           │                       ┌─ ^: ─┴─ 3
           │                 ┌─ @ ─┴─ >:      
       ┌───┤           ┌─ @ ─┴─ i.            
       │   │     ┌─ & ─┴─ 0                   
       │   │     │                            
       │   └─ @ ─┤     ┌─ 0                   
── :: ─┤         │     ├─ ~ ─── ,             
       │         └─────┤                      
       │               │     ┌─ 2             
       │               └─ & ─┴─ \ ─── / ──── g
       └─ ]         

পার্শ্ব প্রশ্ন : এসওতে প্রদর্শিত হলে বক্স অক্ষরগুলি কেন পুরোপুরি সারিবদ্ধ হয় না (তারা আমার কনসোলটিতে কাজ করে):

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