প্রোগ্রাগমিং পুজল এবং কোড ____


45

ইনপুট

মুদ্রণযোগ্য ASCII অক্ষর (32-126 সীমাতে) সমন্বিত একটি খালি খালি এনকোডযুক্ত স্ট্রিং যেখানে কিছু অনুপস্থিত অক্ষর প্রতিস্থাপন করা হয়েছে _

আউটপুট

নিখোঁজগুলি সহ ছোট ছোট অক্ষরে সমস্ত অক্ষরের সাথে একই দৈর্ঘ্যের একটি ডিকোডেড স্ট্রিং।

কিভাবে?

সম্পাদনা: মন্তব্যগুলিতে @ দেউসোভি যেমন উল্লেখ করেছেন, এটি বেকনের সিফারের একটি বৈকল্পিক ।

  • মূল স্ট্রিংয়ে সমস্ত অক্ষর সংগ্রহ করুন এবং 5 দ্বারা তাদের গ্রুপ করুন। অতিরিক্ত অক্ষরগুলি যেগুলি 5 এর সম্পূর্ণ গোষ্ঠীতে ফিট করে না তা এড়ানো হবে।
  • প্রতিটি গ্রুপকে বাইনারি রূপান্তর করুন: ছোট হাতের অক্ষর = 0 , বড় হাতের অক্ষর = 1 । এটি পূর্ণসংখ্যার একটি তালিকা বাড়ে।
  • বর্ণমালার N- তম বর্ণের সাথে মূল স্ট্রিংয়ের প্রতিটি প্রতিস্থাপন করতে এই তালিকার প্রতিটি মান N ব্যবহার করুন (0-indexed), উপস্থিতির ক্রম অনুসারে।_

উদাহরণ: prOGraMMIng PuZZleS & cOde ____

prOGr --> 00110 -->  6 -->  7th letter = 'g'
aMMIn --> 01110 --> 14 --> 15th letter = 'o'
gPuZZ --> 01011 --> 11 --> 12th letter = 'l'
leScO --> 00101 -->  5 -->  6th letter = 'f'

অনুপস্থিত অক্ষরগুলি প্রতিস্থাপন করে এবং সবকিছুকে ছোট হাতের কাছে ফেরত রূপান্তর করে, মূল স্ট্রিংটি উন্মোচন করা হয়েছে:

programming puzzles & code golf

এটি প্রত্যাশিত আউটপুট।

ব্যাখ্যা এবং বিধি

  • অনুপস্থিত অক্ষরগুলি স্ট্রিংয়ের শেষে উপস্থিত হওয়ার গ্যারান্টিযুক্ত। আরও আনুষ্ঠানিকভাবে: _ইনপুট স্ট্রিংয়ে প্রথমটির পরে আর কোনও চিঠি থাকবে না । তবে, অন্যান্য মুদ্রনযোগ্য ASCII অক্ষর যেমন ফাঁকা এবং বিরাম চিহ্নগুলি থাকতে পারে।
  • ইনপুটটি কোনও অকেজো মূলধন পত্র না রাখার গ্যারান্টিযুক্ত : সমস্ত মূলধন অক্ষর 1 সেট করা হয় যা অনুপস্থিত অক্ষরগুলি ডিকোড করার জন্য প্রয়োজনীয়। বাকি সব ছোট হাতের অক্ষরে রয়েছে।
  • ইনপুট স্ট্রিংটি বৈধ হওয়ার গ্যারান্টিযুক্ত। বিশেষ করে:
    • এটি সর্বদা আন্ডারস্কোরগুলি ডিকোড করার জন্য 5 টি অক্ষরের পর্যাপ্ত পূর্ণ গোষ্ঠী থাকবে।
    • বাইনারি-এনকোডড পূর্ণসংখ্যাগুলি [0-25] এর মধ্যে থাকা গ্যারান্টিযুক্ত ।
  • _ইনপুট স্ট্রিংটিতে মোটেও কিছুই নাও থাকতে পারে , সেক্ষেত্রে আপনাকে কেবল ইনপুটটি ফিরিয়ে দিতে হবে।
  • এটি , তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তর!

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

Input : hello!
Output: hello!

Input : helLO, worl_!
Output: hello, world!

Input : i aM yoUr faTh__.
Output: i am your father.

Input : prOGraMMIng PuZZleS & cOde ____
Output: programming puzzles & code golf

Input : Can YOu gUesS tHE ENd oF This ____?
Output: can you guess the end of this text?

Input : THe qUICk brown FOx JUMps oVEr the la__ ___.
Output: the quick brown fox jumps over the lazy dog.

Input : RoadS? wHERe we're goinG WE doN't need _____.
Output: roads? where we're going we don't need roads.

Input : thE greatESt Trick thE DeVIl EVer PUllEd wAs CONvInciNg tHe WorLD h_ ____'_ _____.
Output: the greatest trick the devil ever pulled was convincing the world he didn't exist.

কিছু অতিরিক্ত পরীক্ষার মামলা:

Input : BInar_
Output: binary

Input : 12 MonKey_
Output: 12 monkeys

Input : hyPerbolIZ__
Output: hyperbolized

Input : {[One Last Test ca__]}
Output: {[one last test case]}

ইনপুটটিতে আন্ডারস্কোর রয়েছে এমন কি আমরা কেবল 5 টির বেশি গ্রুপকে বিবেচনা করব?
ফল Esolanging

সেক্ষেত্রে, যখন _ইনপুট স্ট্রিংটিতে কিছু থাকে না তখন নিয়মটি একটি বিশেষ কেস is
ফল

1
ওহ, বেকন সিফার!
দেউসোভি 12'18

1
@ সজটুপওয়াই হিসাবে The input is guaranteed not to contain any useless capital letter, আন্ডারস্কোর না থাকলে মূলধন পত্রও থাকবে না।
লাইকনি

1
@KirillL। হ্যাঁ, কিছু আছে [32-126]। আমি আরও একটি টেস্ট কেস যুক্ত করেছি।
আর্নৌল্ড

উত্তর:


19

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

কোড:

áS.u5ôJC>.bv'_y.;l

05AB1E এনকোডিং ব্যবহার করে । এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা:

á                       # Remove non-letters from the input string.
 S                      # Split the result into individual characters.
  .u                    # Check if is uppercase for each character.
    5ôJ                 # Split into binary numbers of length 5.
       C                # Convert from binary to decimal.
        >               # Add one.
         .b             # Map 1 → A, 2 → B, 3 → C, ..., 25 → Y, 26 → Z.
           v            # For each letter:
            '_y.;       #   Replace the first occurrence of '_' with the current letter.
                 l      #   Convert the string to lowercase.


8

পার্ল 5 -pF -MList::Util=sum, 75 বাইট

@a=grep!/\W|\d/,@F;s!_!(a..z)[sum map{a gt shift@a&&16/2**$_}0..4]!eg;$_=lc

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

ব্যাখ্যা:

  • -pFভেরিয়েবলের ইনপুট একটি লাইন $_পড়ে এবং অক্ষরে বিভক্ত হয়ে অ্যারেতে @F
  • @a=grep!/\W|\d/,@Fআরেজেসকে সন্তুষ্ট না @aকরে এমন সদস্যের সমান অ্যারে সেট করে । অক্ষর, সংখ্যা, এবং কিছুই ছাড়া ; সংখ্যা তাই কিছুই কিন্তু চিঠি এবং , এবং সব অক্ষর এবং হয়েছে অক্ষর। আমরা কখনই অক্ষরগুলি পরীক্ষা করে দেখব না । (দ্রষ্টব্য যে এটি কেবলমাত্র কাজ করে কারণ ইনপুটটির ASCII নিশ্চিত করা হয় ed)@F\W|\d\W_\d\W|\d_@a__@a
  • map{a gt shift@a&&16/2**$_}0..40 থেকে 4 এর জন্য নিম্নলিখিতগুলি করে: এটি পরের উপাদানটিকে @aছোট করে ছোট করে aতুলবে , এবং মূল্যায়ন করে যে সেই উপাদানটির চেয়ে তাত্পর্যপূর্ণভাবে বৃহত্তর কিনা (উদাহরণস্বরূপ যে উপাদানটি বড় নয়)। যদি তা &&হয় তবে সংক্ষিপ্ত-প্রচারিত নয়, সুতরাং আমরা ইনপুট মানটির (0 থেকে 4 এর মধ্যে) পাওয়ার জন্য 2 কে 2 দিয়ে ভাগ করব। অন্যথায় &&সংক্ষিপ্ত প্রচারিত হয় এবং আমরা ০ টি পাই mapপাঁচটি সংখ্যার তালিকাকে sum, যা তাদের যুক্ত করে।
  • এটি তালিকা থেকে আমরা চাই উপাদানটি a..z, এবং এটিই আমরা পাই (a..z)[…]
  • s!_!…!egপ্রতিটি পরিবর্তন করে _মধ্যে $_উপযুক্ত চিঠির, ঘুরে,।
  • $_=lc$_নিজের ছোট হাতের সংস্করণে রূপান্তর করে এবং -pএটি মুদ্রণ করে।


5

জেলি ,  28 27  26 বাইট

-1 এরিক দ্য আউটগল্ফার এবং ডাইলানকে ধন্যবাদ

খুব জেলি-বান্ধব চ্যালেঞ্জ নয়!

ḟŒs$Ƈ<”[s5Ḅ+97Ọż@ṣ”_$FṁLŒl

একটি মোনাডিক লিঙ্ক স্বীকৃত এবং অক্ষরের তালিকা ফেরত।

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

কিভাবে?

ḟŒs$Ƈ<”[s5Ḅ+97Ọż@ṣ”_$FṁLŒl - Link: list of characters    e.g. "MfUNE_?"  (shorthand for ['M','f','U','N','E','_','?'])
    Ƈ                      - filter keep each if:
   $                       -   last two links as a monad:
 Œs                        -     swap-case
ḟ                          -     filter discard
                           - ...i.e. keep A-Z,a-z since they change when the case is swapped
                           -                                  "MfUNE"
      ”[                   - literal character                '['
     <                     - less than? (i.e. is upper-case?) [1,0,1,1,1]
        s5                 - split into fives                 [[1,0,1,1,1]]
          Ḅ                - from base two (vectorises)       [[23]]
           +97             - add (vectorises) ninety-seven    [[120]]
              Ọ            - from ordinals (vectorises)       [['x']]
                    $      - last two links as a monad:
                  ”_       -   literal character              '_'
                 ṣ         -   split at                       [['M','f','U','N','E'],['?']]
               ż@          - swapped @rgument zip             [[['M','f','U','N','E'],'x'],['?']]
                     F     - flatten                          "MfUNEx?"
                       L   - length (of input)                7
                      ṁ    - mould like                       "MfUNEx?"
                           - ...removes any excess characters
                        Œl - lower-case                       "mfunex?"

5

রেটিনা , 91 90 বাইট

T`l`a
T`L`A
[^Aa]

L`.{5}
A
aA
+`Aa
aAA
+T`_lA`l_`[^A]A
^
$+¶
+`_(.*)¶a+(.)
$2$1
0G`
T`L`l

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

T`l`a
T`L`A
[^Aa]

এর মধ্যে ছোট হাতের অক্ষর aএবং বড় হাতের অক্ষরগুলিতে অনুবাদ করুন A, সমস্ত কিছু মুছে ফেলা হচ্ছে।

L`.{5}

এসকে Aa5 এর গ্রুপে বিভক্ত করুন ।

A
aA
+`Aa
aAA

বাইনারি থেকে A1 এবং a0 হিসাবে চিকিত্সা করে বাইনারি থেকে রূপান্তর করুন যেহেতু Aaমূলত 5 টি ছিল তাই 5 aটি বাম রয়েছে, এবং Aবর্ণমালায় পছন্দসই অবস্থানের উপর নির্ভর করে একটি সংখ্যা রয়েছে ।

+T`_lA`l_`[^A]A

aনিম্নলিখিতগুলির সংখ্যা অনুযায়ী সর্বশেষ বৃদ্ধি করুন A

^
$+¶

আসল ইনপুট প্রস্তুত করুন।

+`_(.*)¶a+(.)
$2$1

_পরবর্তী ডিকোডেড চিঠি দিয়ে যে কোনও গুলি প্রতিস্থাপন করুন ।

0G`

যে কোনও অতিরিক্ত ডিকোডেড বর্ণগুলি সরান।

T`L`l

ছোট ছোট সবকিছু।

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

.+
$&¶$&
T`L`l`^.*
T`l`a`.*$
T`L`A
T`aAp`aA_`.*$
(.*¶)?.{5}
$&;
A
aA
+`Aa
aAA
+T`_lA`l_`[^A]A
+`_(.*¶)a+(.);
$2$1
1G`

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

.+
$&¶$&

ইনপুট সদৃশ।

T`L`l`^.*

প্রথম কপি ছোট করুন।

T`l`a`.*$

aদ্বিতীয় অনুলিপিতে ছোট হাতের অক্ষর অনুবাদ করুন ।

T`L`A

বড় হাতের অক্ষরগুলিতে অনুবাদ করুন A। এগুলি অবশ্যই দ্বিতীয় অনুলিপিতে থাকতে হবে কারণ প্রথম অনুলিপি ইতিমধ্যে ছোট করা হয়েছে।

T`aAp`aA_`.*$

দ্বিতীয় কপির সমস্ত কিছু মুছুন।

(.*¶)?.{5}
$&;

দ্বিতীয় অনুলিপি (এখন কেবলমাত্র Aa) 5 এর গ্রুপে বিভক্ত করুন ।

A
aA
+`Aa
aAA
+T`_lA`l_`[^A]A
+`_(.*¶)a+(.);
$2$1
1G`

অক্ষরগুলি ডিকোড করুন এবং সেগুলি আগের মতো sertোকান।


5

এপিএল (ডায়ালগ ইউনিকোড) , 46 বাইট এসবিসিএস

নামবিহীন ল্যাম্বদা, অনুমান ⎕IO(সূচকের উত্স) হতে হবে 0

{_'_'=⊢⋄819A[2⊥⍉(+/_⍵)5A∊⍨⍵∩A,819A←⎕A]@_⍵}

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

{... ... } দুই বিবৃতি ফাংশন; যুক্তি, বিবৃতি পৃথক

 আর্গুমেন্ট (নো-অপশন ফাংশন)
'_'= যেখানে আন্ডারস্কোরের সমান (অর্থাত্ বুলিয়ান ম্যাপিং ফাংশন)
_← সেই ফাংশনটি নির্ধারণ করে_

A[... ]@_⍵ এর নিম্নলিখিত অক্ষরগুলি করা A যুক্তি আন্ডারস্কোর অবস্থানের
  ⎕A বড়হাতের একটি lphabet
  A← বরাদ্দ যে A
  819⌶ এটা ছোট হাতের অক্ষরে ( 819 ≈ বড় , কোন বাম যুক্তি মানে বড় না, অর্থাত্ ছোট হাতের সঙ্গে)
  A, শুরুতে যোগ বড়হাতের বর্ণমালা; এটি আমাদের সমস্ত অক্ষরকে
  ⍵∩ যুক্তি এবং এটির ছেদ দেয় ;
  A∊⍨ এগুলির মধ্যে কোনটি বড় হাতের বর্ণমালার সদস্য তা যুক্তিগুলির অক্ষরগুলি; বড় হাতের বিট
  ()5⍴r নীচে নীচের সংখ্যার সারি, এবং পাঁচটি কলামকে বোঝায়:
   _⍵ আর্গুমেন্টের আন্ডারস্কোরগুলির মুখোশ
   +/ যে সমষ্টি; আন্ডারস্কোর সংখ্যা
   স্থানান্তর (প্রতিটি অবস্থানকে কিছুটা বিট পজিশনের চেয়ে সংখ্যা হিসাবে বিবেচনা করার জন্য)
  2⊥ বেস -২
819⌶ লোয়ারকেস সবকিছু হিসাবে মূল্যায়ন করুন


5

স্কালা , 189 বাইট

def f(s:Array[Char])={var j=0;s.zipWithIndex.collect{case(95,i)=>s(i)=(Integer.parseInt(s.filter(_.isLetter)slice(j,j+5)map(k=>if(k<91)1 else 0)mkString,2)+97)toChar;j+=5};s.map(_.toLower)}

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

ব্যাখ্যা:

def f(s: Array[Char]) = {                // takes a String in input
  var j = 0                              // j stores at which block of 5 letters we're currently at
  s.zipWithIndex.collect {               // Array('h', 'e', ...) => Array(('h', 0) ('e', 1), ...) and we apply a collect transformation (filter/map)
    case (95, i) =>                      // we only handle cases where the char is '_' (95)
      s(i) = (                           // we modify the char at index i with the following
        Integer.parseInt(                // Integer.parseInt("00110", 2) = 6
          s                              //
            .filter(_.isLetter)          // filter out non letter chars (spaces, punct, figures, ...) from the input string (thanks @Arnauld for the fix)A
            .slice(j, j+5)               // "substring" the array to the block of 5 letters in question
            .map(                        // map on the current block of 5 letters
              k =>                       // the index of the next char in the block f 5 (e.g. 13)
                if (k < 91) 1 else 0     // if the current char is upper case (<91) then we replace it by a bit true, otherwise by a bit false
            )mkString,                   // Array(0, 1, 1, ...) => "011..."
          2                              // cast string to binary
        )                                //
        + 97                             // +97 to create a lower case char
      )toChar                            // cast from int to char
      j += 5                             // update the starting index of the next block of 5 letters
    }                                    //
  s.map(_.toLower)                       // return the updated seq of chars all in lower case
}                                        //


4

জেলি , 26 বাইট

xn¥Œs<”[s5Ḅ‘ịØaṛi”_ḟ0Ɗ¦ƒŒl

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

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



3

পরিষ্কার , 180 ... 150 বাইট

import StdEnv
?s=['a'+sum[i\\i<-:""&c<-s|c<'a']: ?(drop 5s)]
@['_':b][x:y]=[x: @b y]
@[a:b]z=[toLower a: @b z]
@e _=e
$s= @s(?(filter isAlpha s))

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

ফাংশন নির্ধারণ $ :: [Char] -> [Char]সঙ্গে @ :: [Char] [Char] -> [Char]যেমন আন্ডারস্কোর প্রতিস্থাপন করতে একটি সাহায্যকারী, আর ? :: [Char] -> [Char]একটি সাহায্যকারী হিসেবে প্রতিস্থাপন অক্ষর তৈরি করতে।


i<-:""অংশটি কীভাবে কাজ করে? চরগুলি সংমিশ্রণ করার সময় বা সংযোজন করার সময় স্পষ্টভাবে সংখ্যায় রূপান্তরিত হয়?
লাইকনি

@ লাইকনি না, কোনও অন্তর্নিহিত রূপান্তর নেই। আপনি চার্স যোগ করতে এবং বিয়োগ করতে পারেন যদিও।
31urous


3

আর , 153 135 113 বাইট

function(s,S=utf8ToInt(s)){S[S==95]=2^(4:0)%*%matrix(S[S%in%c(65:90,97:122)]<95,5)+97
cat(tolower(intToUtf8(S)))}

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

ব্যবহারের সাথে কিছু সতর্কতা জারি করে তবে ফলাফলটিকে matrixপ্রভাবিত করা উচিত নয়। [<-অ্যাসাইনমেন্ট হিসাবে সতর্কতা জারি করে ডিফল্টরূপে বহিরাগত নির্ধারিত অবজেক্টগুলি মুছে ফেলা হবে।

40 (!) জাইসির উন্নতির জন্য বাইটস ডাউন করে


আমি আপনার প্রয়োজন মনে করি না,length(L)%/%5
জেসি

এছাড়াও এল সংজ্ঞায়িত করার দরকার নেই?
জেসি

@ জায়েস ঠিক আছে আজকে আমি শিখেছি যে সূচিগুলির [<-দৈর্ঘ্যের অতীতের উপাদানগুলিকে ছুঁড়ে ফেলবে ...
জিউস্পে

আমিও আসলে!
জেসি


3

সি (জিসিসি) , 111 109 101 100 বাইট

সম্পাদনা: @ ফ্রাউনফ্রোগের মন্তব্যে লোয়ারকেসিং যুক্ত হয়েছে; লিন, ক্রিস্টোফ এবং ব্যবহারকারীর জন্য ধন্যবাদ 329483 তাদের পরামর্শের জন্য!

f(s,t,i)char*s,*t;{for(t=s;t=strchr(t,95);*t=i+1)for(i=3;i<64;s++)isalpha(*s)?i=2*i|*s<97,*s|=32:0;}

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


এর মাধ্যমে আপনি 2 বাইট সংরক্ষণ করতে পারেন i+=i+(*s<97)
লিন

আপনি jমার্কার বিট চালু করে iএবং দ্বিতীয়টির মতো করে আবার লিখে লিখে বিলুপ্ত করতে পারেন for(i=1;i<32;s++)। এবং বাইরের জন্য অতিরিক্ত 32 ক্ষতিপূরণ দিন। এখানে নবী হিসাবে আমি একটি সাত বাইট অতিরিক্ত গণনা।
ব্যবহারকারী5329483

অন্য একটি বাইট পাওয়া গেছে: for(i=3;i<96;s++)65 টি একক সংখ্যায় নামিয়ে আনে, ওরফে 1
ব্যবহারকারী5329483

2

যান, 219 217 192 210 209 156 বাইট

25 লাইটের জন্য 25 বাইট সংরক্ষিত ! @ ওভিএসকে 53 বাইট সংরক্ষিত !

আন্ডারস্কোরবিহীন স্ট্রিংযুক্ত বাগের কারণে 18 বাইট হারাতে হয়েছিল :(

func p(s string){b:=0;n:=0;for _,c:=range s{if IsLetter(c){b+=b;if IsUpper(c){b+=1};n++;s=g.Replace(s,"_",string('a'+b%32),(5-n%5)/5)}};Print(g.ToLower(s))}

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


2

স্ট্যাক্স , 22 বাইট

â╟▓ïMeee¶▐f◄┴≈┘n╛äyΩ○N

এটি চালান এবং এটি ডিবাগ করুন

সাধারণ পন্থা হ'ল একটি "_"কলব্যাক ফাংশন ব্যবহারের নিয়মিত প্রকাশের প্রতিস্থাপন যা প্রতিটি প্রতিস্থাপনের অক্ষর গণনা করতে ইনপুটগুলির অক্ষরগুলিকে টুকরো টুকরো করে।

v       convert to lower case
'_      "_" string literal
{       begin block for regex replacement
  yVl|& all the letters only from the original input
  5/    split into chunks of 5
  i@    keep the ith one, where i is the 0-based number of times this block has run
  {97<m map 5-letter chunk to bits to indicate which are lowercase
  :b    decode as 5-bit integer
  97+]  add 97 and wrap in array to convert to lower case character
}       end block for regex replacement
R       do regex replacement

এটি চালান


1

লাল , 247 বাইট

func[s][a: charset[#"a"-#"z"#"A"-#"Z"]v: copy""parse s[any[copy c a(append v to-string c)|
skip]]k: 0 t: copy""repeat n(length? v)/ 5[c: 0 p: 16
loop 5[if v/(k: k + 1) <#"a"[c: c + p]p: p / 2]append t#"a"+ c]foreach c
t[replace s"_"c]lowercase s]

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

আরও পঠনযোগ্য:

f: func[s][
    a: charset[#"a"-#"z"#"A"-#"Z"]
    v: copy ""
    parse s[any[copy c a(append v to-string c)| skip]]
    k: 0
    t: copy ""
    repeat n (length? v) / 5[
        c: 0
        p: 16
        loop 5[
            if v/(k: k + 1) < #"a" [c: c + p]
            p: p / 2
        ]
        append t #"a" + c
    ]
    foreach c t[replace s "_" c]
    lowercase s
]

1

জাভা 10, 186 বাইট

s->{var b="";for(int i=0,c;i<s.length();)if((b+=(c=s.charAt(i++))>64&c<91?1:c>96&c<123?0:"").length()>4)s=s.replaceFirst("_",(char)(97+Byte.valueOf(b,2))+(b=""));return s.toLowerCase();}

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

ব্যাখ্যা:

s->{                            // Method with String as both parameter and return-type
  var b="";                     //  Binary-String, starting empty
  for(int i=0,c;i<s.length();)  //  Loop over the characters of the input-String
    if((b+=(c=s.charAt(i++))>64&c<91?
                                //   If the current character is a lowercase letter:
            1                   //    Append "1" to the binary-String
           :c>96&c<123?         //   Else-if it's an uppercase letter:
            0                   //    Append "0" to the binary-String
           :                    //   Else (not a letter):
            "")                 //    Append nothing to the binary-String
       .length()>4)             //   And if the length is now 5:
      s=s.replaceFirst("_",     //    Replace the first "_" in the input-String with:
           (char)(97+Byte.valueOf(b,2))
                                //     The binary-String as character
           +(b=""));            //    And reset the binary-String
  return s.toLowerCase();}      //  Return the modified input-String as lowercase


1

জাপট, 25 বাইট

r'_@r\L mè\A sTT±5 ÍdIÄÃv

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


ব্যাখ্যা

r'_                           :Replace underscores
   @                          :Pass each match through a function
    r                         :  From original input remove
     \L                       :    /[^a-zA-Z]/g
        m                     :  Map
         è                    :    Count
          \A                  :      /[A-Z]/g
             s                :  Slice
              T               :    From index T (initially 0)
               T±5            :    To index T+=5
                   Í          :  Convert from base-2 string to base-10 integer
                     IÄ       :  Add 64+1
                    d         :  Get character at that codepoint
                       Ã      :End function
                        v     :Lowercase

1

পাইথ, 36 বাইট

Km@Gim!}kGd2c@+r1GGQ5VQp?qN\_.(KZr0N

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

ব্যাখ্যা

Km@Gim!}kGd2c@+r1GGQ5VQp?qN\_.(KZr0N
             @+r1GGQ                   Get the letters from the input...
            c       5                  ... in chunks of 5.
 m        d                            For each chunk...
     m!}kG                             ... check if each letter is uppercase...
    i      2                           ... converted to binary...
  @G                                   ... and get the corresponding letter.
                     VQp               For each character in the input...
K                       ?qN\_.(KZ      ... if the character is '_', replace it...
                                 r0N   ... otherwise, lowercase it.

1

পাইথন 3.5 , 296 বাইট

u=input();f=u.find('_');m=''.join([c for c in u if c.isalpha()]);z=[chr(int(''.join(['0'if o.islower() else'1' for o in l]),2)+65)for l in[m[h:h+5]for h in range(0,len(m),5)]if len(l)==5];[z.insert(v,d)for v,d in enumerate(u[f:])if d!="_"];u=list(u);u[f:]=z[:len(u[f:])];print(''.join(u).lower())

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

প্রথম কোড গল্ফ :)

(আমি জানি এটি বাইটে ছোট নয়, আমি কেবল 1 লাইন কোড তৈরি করতে মজা পাচ্ছিলাম)

এখানে ব্যাখ্যা:


ব্যবহারকারীর ইনপুট

তোমার দর্শন লগ করা = ইনপুট ()


স্ট্রিংয়ে প্রথম _ এর সূচীটি সন্ধান করে এবং এটি সঞ্চয় করে

F = u.find (_ ')


সমস্ত অ-আলফা অক্ষরের স্ট্রিপগুলি

মি = ''। যোগ দিন ([সি এর জন্য সিতে সি সিফলা ()])


5 টি অক্ষর সমন্বিত প্রতিটি উপাদান সহ আলফা স্ট্রিংটিকে একটি অ্যারেতে বিভক্ত করে

যাত্রা। ['থেকু', 'আইসিকিবিআর', 'নিজস্বফো', 'এক্সজেইউএমপি', 'সোভের', 'থেলা']

তারপরে ছোট ছোট অক্ষরগুলিকে 0 এবং বড় হাতের অক্ষরগুলিকে 1 তে রূপান্তর করে

যাত্রা। ['11001', '11000', '00011', '01110', '00110', '00000']

এবং বাইনারি স্ট্রিংটিকে একটি পূর্ণসংখ্যায় রূপান্তর করে, 65 যুক্ত করে এবং এটি একটি অক্ষরে রূপান্তর করে

যাত্রা। ['জেড', 'ইয়', 'ডি', 'ও', 'জি', 'এ']

z = [সিআর (ইনট্রি (''। যোগ দিন (['0' যদি o.islower (অন্যথায় 'ও এর জন্য l')), 2) +65) l এর জন্য [এম [এইচ: এইচ + 5] h রেঞ্জের জন্য (0, লেন (মি), 5)] যদি লেন (l) == 5]


প্রথম _ এর পরে সমস্ত বৈশিষ্ট্য সন্ধান করে এবং তাদের নিজ নিজ অবস্থানগুলিতে অ্যারে z তে ঠেলে (উপরে বর্ণিত)

যাত্রা। ['জেড', 'ই', '', 'ডি', 'ও', 'জি', '।', 'এ']

[z.insert (v, d) for v, d in enumerate (u [f:]) if d! = "_"]


অক্ষরের তালিকায় আমাদের স্ট্রিংকে বিভক্ত করুন

তোমার দর্শন লগ করা = তালিকা (প)


আমাদের স্ট্রিংটি প্রথম _ থেকে তালিকার শেষ পর্যন্ত টুকরো টুকরো করে অ্যারে z দিয়ে প্রতিস্থাপন করুন। প্রথম অ্যারে থেকে শেষ পর্যন্ত আমাকে বিভক্ত স্ট্রিংয়ের দৈর্ঘ্যে অ্যারে জেড টুকরো টুকরো করে ফেলতে হয়েছিল কারণ আমি অলস কুকুরের উদাহরণে একটি অতিরিক্ত চরিত্র পেয়েছি (উপরের উদাহরণগুলির শেষে "একটি")

তোমার দর্শন লগ করা [চ:] = z- র [: LEN (তালিকা (U [F:]))]


* উত্তর মুদ্রণ করুন *

মুদ্রণ ( ''। যোগদানের (প) .lower ())



এক লাইনে সবকিছু পাওয়ার চেয়ে আরও বেশি কিছু গল্ফ করা। 165 বাইট
জো কিং

আপনি o.islower()এবং এর মধ্যে স্থান সরাতে পারেন elseএবং আমি মনে করি '1'এবং for। এছাড়াও, আপনি পরিবর্তন করতে পারেন if d!="_"থেকে if"_"!=d, কিন্তু উপরে মন্তব্য ইতিমধ্যে যে আছে।
জাকারি


1

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

switch -r($args|% t*y){_{$_=$a[$n++]+97}[a-z]{$x+=$x+($_-le96);if(!(++$i%5)){$a+=,$x;$x=0};$_=$_-bor32}.{$r+=[char]$_}}$r

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

কম গল্ফড:

switch -Regex ($args|% toCharArray){
    _ {                     # is underscore
        $_=$a[$n++]+97      # get a char from the array of letter
    }

    [a-z] {                 # is letter
        $x+=$x+($_-le96)    # $x=2*$x+($_-le96)
        if(!(++$i%5)){      # if(++$i%5 -eq 0)
            $a+=,$x         # add an element to the array of letters
            $x=0            # init
        }
        $_=$_-bor32         # to lower
    }

    . {                     # is any char ('_' and letters included)
        $r+=[char]$_        # add the char to result
    }
}
$r

0

পার্ল 5 -p , 78 বাইট

for$h(s/\W|\d//gr=~y/a-z/0/r=~y/A-Z/1/r=~/.{5}/g){s%_%chr 65+oct"0b$h"%e}$_=lc

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


আমি এটি আরও 3 বাইট দিয়ে স্থির করেছি, যা বর্তমানের নিয়মের অধীনে আপনার উত্তরটিকে কিছুটা আরও ভাল করে তোলে।
এক্সকালি

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