একটি স্ট্রিং Covfeifify


371

এই চ্যালেঞ্জে, আপনাকে অবশ্যই রেজেক্সের সাথে মিলে স্ট্রিং নিতে হবে ^[a-zA-Z]+$বা যা যুক্তিসঙ্গত হবে (আপনি যদি চান তবে আপনাকে বড় হাতের অক্ষর বা ছোট হাতের অক্ষরগুলি বিবেচনা করতে হবে না) (আপনি স্ট্রিংটি যথেষ্ট দীর্ঘ ধরে নিতে পারেন এবং সমস্তটির জন্য সঠিক কাঠামো রয়েছে ক্রিয়াকলাপ) এবং পটাসের সাম্প্রতিক দাদ্যবাদী টুইটের শেষে শব্দের অনুরূপ উত্পাদিত অন্য স্ট্রিং আউটপুট দেয় "Despite the constant negative press covfefe"

কিভাবে একটি স্ট্রিং covfeifify:

প্রথমে প্রথম শব্দ গ্রুপটি তৈরি করুন (পরিভাষাটি তৈরি)।

তুমি এটা কিভাবে করো? ওয়েল:

  • প্রথম স্বরটি সন্ধান করুন ( yএটি একটি স্বরও)

      v
    creation
    
  • তার পরে প্রথম ব্যঞ্জনবর্ণ সন্ধান করুন

        v
    creation
    
  • বাকি স্ট্রিংটি সরান

    creat
    

এটি আপনার প্রথম সাউন্ড গ্রুপ।

পরবর্তী পর্ব:

শব্দ গোষ্ঠীর সর্বশেষ ব্যঞ্জনা পান

t

এবং স্বরযুক্ত বা ভয়েসহীন সংস্করণ দিয়ে এটি প্রতিস্থাপন করুন। এটি করতে, এই টেবিলের মধ্যে চিঠিটি সন্ধান করুন। প্রদত্ত চিঠিটি প্রতিস্থাপন করুন (যা একই অক্ষর হতে পারে)

b: p
c: g
d: t
f: v
g: k
h: h
j: j
k: g
l: l
m: m
n: n
p: b
q: q
r: r
s: z
t: d
v: f
w: w
x: x
z: s

সুতরাং, আমরা পেতে

d

তারপরে, সেই ব্যঞ্জনবর্ণের পরে পরবর্তী স্বরটি ধরুন। আপনি ধরে নিতে পারেন যে এই ব্যঞ্জনবর্ণটি স্ট্রিংয়ের শেষে নেই। এই দু'জনকে এক সাথে যোগদান করুন, তারপরে এটি দু'বার পুনরাবৃত্তি করুন:

didi

এটি প্রথম সাউন্ড গ্রুপে জড়িত করুন:

creatdidi

আপনি সম্পন্ন করেছেন: স্ট্রিংটি স্বীকৃত, এবং আপনি এখন এটি আউটপুট করতে পারেন।

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

coverage: covfefe

example: exxaxa

programming: progkaka (the a is the first vowel after the g, even though it is not immediately after)
code: codtete

president: preszizi

এটি , সুতরাং আপনার প্রোগ্রামটি যতটা সম্ভব সংক্ষিপ্ত করুন!


7
"x" এর প্রযুক্তিগতভাবে "জিজেডে" মানচিত্র তৈরি করা উচিত। "qu" এর "gw" তে মানচিত্র তৈরি করা উচিত।
স্টিভ বেনেট

2
এই covfefification এক ধারণা নির্দিষ্ট করে কিন্তু আমি বোধ যে ডগলাস Hofstadter (এবং মেলানি মিচেল এর) একটি রেফারেন্স স্ট্রিং-রূপান্তর অ্যানালজিস উপর কাজ করে, যেমন এ রাখা তরল ধারণা উপযুক্ত বলে মনে হয়।
মঙ্গলবার

58
১৪০ টিরও বেশি অক্ষরের উত্তর অযোগ্য হওয়া উচিত
স্যান্ডি গিফোর্ড

12
দুর্ভাগ্যক্রমে ট্রাম্পস্ক্রিপ্টে এটি করা অসম্ভব :(

4
@ দ্য প্লাজমাআরেলগুন এটি একটি রসিকতা ছিল, যেহেতু টুইটগুলি 140 টি অক্ষর বা তার চেয়ে কম হতে হবে।
31:14

উত্তর:


91

জেলি ,  58  57 বাইট

<TḢị
e€Øyµ¬TĖEÐḟḢṪ;ç¥T
ḣÇḢ⁸ÇịµḢØYiị“ßȷ%Hẹrȧq’œ?ØY¤⁾cgy;ẋ2

একটি সম্পূর্ণ প্রোগ্রাম যা ছোট হাতের অক্ষরের একটি তালিকা গ্রহণ করে এবং ফলাফল মুদ্রণ করে।

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

কিভাবে?

<TḢị - Link 1, extract first value from y not less than x: number, x; list of numbers, y
     -                                                     e.g. 5, [3,4,7]
<    - x less than vectorised across y                             [0,0,1]
 T   - truthy indices                                              [    3]
  Ḣ  - head                                                             3
   ị - index into y                                                     7

e€Øyµ¬TĖEÐḟḢṪ;ç¥T - Link 2, indices of the letters to manipulate: list of characters, w
  Øy              - vowel+ yield = "AEIOUYaeiouy"                 e.g.  "smouching" 
e€                - exists in for €ach letter in w                       001100100
    µ             - monadic chain separation, call that v
     ¬            - not vectorised across v                              110011011
      T           - truthy indices                                       12  56 89
       Ė          - enumerate                      [[1,1],[2,2],[3,5],[4,6],[5,8],[6,9]]
         Ðḟ       - filter discard if:
        E         -   elements are equal                       [[3,5],[4,6],[5,8],[6,9]]
           Ḣ      - head                                        [3,5]
            Ṫ     - tail                                           5
                T - truthy indices of v                                    34  7
               ¥  - last 2 links as a dyad
              ç   -   call last link (1) as a dyad                         7
             ;    -   concatenate                                     5,7
                  -                                    ...i.e the indexes of 'c' and 'i'

ḣÇḢ⁸ÇịµḢØYiị“ßȷ%Hẹrȧq’œ?ØY¤⁾cgy;ẋ2 - Main link: list of characters, w
                                   -                             e.g.  "smouching"
 Ç                                 - call the last link (2) as a monad    [5,7]
ḣ                                  - head to index (vectorises)      ["smouc","smouchi"]
  Ḣ                                - head                             "smouc"
                                   -   implicit print due to below leading constant chain
   ⁸                               - link's left argument, w
    Ç                              - call the last link (2) as a monad    [5,7]
     ị                             - index into w                         "ci"
      µ                            - monadic chain separation, call that p
       Ḣ                           - head p                               'c'
        ØY                         - consonant- yield = "BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz"
          i                        - first index                          22
                          ¤        - nilad followed by link(s) as a nilad:
            “ßȷ%Hẹrȧq’             -   base 250 number = 1349402632272870364
                        ØY         -   consonant- yield = "BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz"
                      œ?           -   nth permutation  = "BCDFGHJKLMNPQRSTVWXZpctvkhjglmnbqrzdfwxs"
           ị                       - index into         (special case ->) 'c'
                           ⁾cg     - literal ['c','g']
                              y    - translate (change 'c's to 'g's)      'g'
                               ;   - concatenate with the headed p        "gi"
                                ẋ2 - repeat list twice                    "gigi"
                                   - implicit print ...along with earlier = smoucgigi

13
এটি আশ্চর্যজনক ...
ক্লানজেন

অবিশ্বাস্য কাজ।
জেএফ এটি

9
আমি জেলি সম্মত।
ডিপএস

6
এটি আমি দেখেছি আজবতম প্রোগ্রামিংয়ের ভাষা।
রায়ান

@ রায়ান এটি গল্ফ করার উদ্দেশ্যে করা হয়েছে।
22.39 এ ফল ফলবান

61

জাভাস্ক্রিপ্ট (ES6), 107 103 বাইট

GOTO 0 এর জন্য 4 বাইট সংরক্ষণ করা হয়েছে

s=>([,a,b,c]=s.match`(.*?[aeiouy]+(.)).*?([aeiouy])`,a+(b=(a="bcdfgszkvtgp")[11-a.search(b)]||b)+c+b+c)

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


6
আপনি এর মতো কয়েকটি বাইট সংরক্ষণ করতে পারেন:s=>([,a,b,c]=s.match`(.*?[aeiouy]+(.)).*?([aeiouy])`,a+(b=(a="bcdfgszkvtgp")[11-a.search(b)]||b)+c+b+c)
0

@ GOTO0 ধন্যবাদ, আপডেট হয়েছে।
আর্নল্ড

49

জেলি , 45 39 বাইট

Øa“œṣ$b|0Ḃ’ṃ,Ṛ$yṫµfØyḢṭḢẋ2
e€ØyIi-‘ɓḣ;ç

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

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

e€ØyIi-‘ɓḣ;ç                Main link. Argument: s (string)

  Øy                        Vowels with y; yield "AEIOUYaeiouy".
e€                          Test each character in s for membership.
    I                       Increments; compute the forward differences of the
                            resulting array of Booleans.
     i-                     Find the first index of -1.
       ‘                    Increment this index to find the index of the first
                            consonant that follows a vowel.
                            Let's call this index j.
        ɓ                   Begin a new chain. Left argument: s. Right argument: j
         ḣ                  Head; yield the first j characters of s.
           ç                Call the helper link with arguments s and j.
          ;                 Concatenate the results to both sides.
Øa“œṣ$b|0Ḃ’ṃ,Ṛ$yṫµfØyḢṭḢẋ2  Helper link. Left argument: s. Right argument: j

Øa                          Alphabet; set the return value to “abc...xyz”.
  “œṣ$b|0Ḃ’                 Yield 7787255460949942. This is a numeric literal in
                            bijective base 250. The value of each digit matches its
                            1-based index in Jelly's code page.
           ṃ                Convert 7787255460949942 to base 26, using the digts
                            a = 0, b = 1, ..., z = 25.
                            This yields "bcdfkszgvtgp".
            ,Ṛ$             Pair the result with its reverse, yielding
                            ["bcdfkszgvtgp", "pgtvgzskfdcb"].
                ṫ           Call tail with arguments s and j, yielding the j-th and
                            all following characters of s.
               y            Translate the result to the right according to the
                            mapping to the left, i.e., replace 'b' with 'p', 'c'
                            with 'g', etc. 'g' appears twice in the first string
                            of the mapping; only the first occurrence counts.
                            Let's call the resulting string r.
                 µ          Begin a new chain. Argument: r
                  fØy       Filter; remove non-vowels from r.
                     Ḣ      Head; take the first vowel.
                       Ḣ    Head; take the first character/consonant of r.
                      ṭ     Tack; append vowel to the consonant.
                        ẋ2  Repeat the resulting string twice.

4
দুঃখিত, বন্ধু, দেখে মনে হচ্ছে আপনি মেগা জেলি প্রতিনিধি থেকে বাদ পড়েছেন
ধ্বংসাত্মক লেবু

tfw একটি উত্তর অত্যধিক সরল দেখায় তবে বাস্তবে এটি দুর্দান্ত ... সহজ সুন্দর
এরিক দ্য আউটগল্ফার

31

সিজেম , 59 58 57 56 বাইট

q_{"aeiouy":V&,_T|:T^}#)/(_W>"cbdfkszgvtpg"_W%er@sV&0=+_

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

ব্যাখ্যা

q_                   e# Read the input and copy it.
{                    e# Find the index of the first char for which the following is true:
 "aeiouy":V          e#  Push "aeiouy" and store it in V.
 &,                  e#  Check if the current char is in the vowel string (0 or 1).
 _T|:T               e#  Copy the result and OR with T (T is initially 0), storing back in T.
 ^                   e#  XOR with the original result. This will be 1 for the first 
                     e#  consonant appearing after a vowel.
}#                   e# (end find)
)/                   e# Increment the index and split the string into chunks of that size.
(                    e# Pull out the first chunk.
_W>                  e# Copy it and get the last character (the consonant).
"cbdfkszgvtpg"_W%er  e# Transliterate the consonant to voiced/voiceless alternative.
@s                   e# Bring all the other split chunks to the top and join them together.
V&0=                 e# First char of the set intersection of that and the vowels.
                     e# (i.e. the first vowel in the second half)
+                    e# Concatenate the new consonant and the vowel.
_                    e# Duplicate the result of that.
                     e# Implicit output of stack contents.

2
জেলিকে মারছে সিজেম? : ও (কমপক্ষে, এটি জেলি জবাব দেয় যে প্রত্যেকেই আপোস্টিং বলে মনে হচ্ছে))
22 এ ফলটি Esolanging

29

সি, 219 213 206 179 175 বাইট

#define p putchar
#define q(a)for(;a strchr("aeiouy",*s);p(*s++));
f(s,c,h)char*s;{q(!)q()p(*s);p(c="pgt vkh jglmn bqrzd fwx s"[*s-98]);p(h=s[strcspn(s,"aeiouy")]);p(c);p(h);}

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


* পি = পুটচর কি প্রথম লাইন হিসাবে কাজ করে?
কে_জি

4
দুঃখিত অযোগ্য একটি টুইট মধ্যে ফিট করতে পারে না।
কেয়ার্ড কইনিরিংহিংহ

@ কায়ারডকোইনরিঙ্গিং আপনার স্যার ভুল বলেছেন (আমি জানি আপনি যখন এটি লিখেছিলেন তখন এটি 140 ছিল)
স্টান স্ট্রাম


1
12 বা তাই বাইটস #defineপ্রিপ্রসেসর ফ্ল্যাগ ( -D...) দ্বারা প্রতিস্থাপন করে ফাংশন মুভ করা যায় ।


18

পিএইচপি, 121 বাইট

$v=aeiouy;preg_match("#(.*?[$v]+([^$v])).*?([$v])#",$argn,$t);echo$t[1],$z=strtr($t[2].$t[3],bcdfgkpstvz,pgtvkgbzdfs),$z;

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


3
-২ বাইট:echo$t[1],$z=strtr($t[2].$t[3],bcdfgkpstvz,pgtvkgbzdfs),$z;
তিতাস

@ টিটাস আমি এটি সম্পর্কে ভাবি না। আপনাকে ধন্যবাদ
Jgrg Hülsermann

$argnসংক্ষিপ্ত কিছু নামকরণ হয় না কেন ? $a, উদাহরণস্বরূপ - এটি -3 বাইট
টাইলার সেবাস্তিয়ান

@TylerSebastian আমার কাছে একটি ইনপুট ভেরিয়েবল উপস্থিত থাকতে হবে। হ্যাঁ আমি একটি ফাংশন তৈরি করতে পারি তবে আমি যদি এটি করি তবে এটি তিনটি বাইট ব্যবহার হিসাবে বাইট সংখ্যা আরও
বাড়ায়

আহ ঠিক আছে দুঃখিত, পিএইচপি কীভাবে কমান্ড লাইনটি অর্গগুলি করে তা আমি ভুলে গিয়েছিলাম - আমি সবেমাত্র দেখেছি যে আপনি এটি শিরোনাম বিভাগে সংজ্ঞায়িত করেছেন তবে এটি সংরক্ষিত পরিবর্তনশীল তা বুঝতে ব্যর্থ হয়েছেন।
টাইলার সেবাস্তিয়ান

15

পাইথ, 54 বাইট

L+hb?>F}RJ"aeiouy"<b2+hKtb*2+XhK"cgdsfbpvztkg")h@JKytb

এটি একটি ফাংশন সংজ্ঞায়িত করে y, যা একটি স্ট্রিং প্রত্যাশা করে। এটি অনলাইনে ব্যবহার করে দেখুন: টেস্ট স্যুট


14

পাইথন 3, 155 139 বাইট

import re
def f(x,k='aeiouy])'):b,c,v=re.findall(f'(.*?[{k}([^{k}.*?([{k}',x)[0];return b+c+(('bcdfgkpstvz'+c)['pgtvkgbzdfs'.find(c)]+v)*2

@ ওওএসকে ধন্যবাদ 16 বাইট অপসারণ

গ্যাবার ফেকেতে ধন্যবাদ 1 বাইট অপসারণ করা হয়েছে


2
আপনি একটি ভেরিয়েবল তৈরি করতে পারেন যার মান রয়েছে 'aeiouy]', এটি হয়ত কিছু বাইট সংরক্ষণ করবে। এছাড়াও আপনি প্রতিস্থাপনের স্ট্রিংগুলি থেকে কিছু অক্ষর অপসারণ করতে পারেন there
গ্যাবার ফেকেটে

2
আমি প্রতিস্থাপনের স্ট্রিং থেকে অভিন্ন অক্ষরগুলি সরাতে পারি না, কারণ এটি একটি হবে IndexErrorএবং সংরক্ষণ aeiouy])কোনও বাইট সংরক্ষণ করে না।
L3viathan

2
যদি আপনি এর মতো কিছু বের করেন তবে আপনি s='aeiouy])'ব্যবহার করতে পারেন b,c,v=re.findall('(.*?[%s([^%s.*?([%s'%(s,s,s)। এটি সংক্ষিপ্ত নয়, তবে এটি সামগ্রিকভাবে সংক্ষিপ্ত করার কোনও পথে পরিচালিত করতে পারে।
জেরেমি ওয়েইরিচ


3
এফ-স্ট্রিংগুলি ব্যবহার করে 1 বাইট সংরক্ষণ করা হবে: k='aeiouy])'এবংf'(.*?[{k}([^{k}.*?([{k}'
গ্যাবার ফেকেট

14

জাভা 8, 243 236 222 বাইট

s->{String q="[a-z&&[^aeiouy]]",a=s.replaceAll("(^"+q+"*[aeiouy]+"+q+").*","$1"),b="pgtvkhjglmnbqrzdfwxs".charAt("bcdfghjklmnpqrstvwxz".indexOf(a.charAt(a.length()-1)))+s.replaceAll(a+q+"*([aeiouy]).*","$1");return a+b+b;}

.replaceAllআমরা চাই না এমন অংশগুলি ফিল্টার করার জন্য ক্যাপচার গ্রুপগুলির সাথে রেজিক্সগুলি ব্যবহার করে ।

ব্যাখ্যা:

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

s->{ // Method with String parameter and String return-type
  // Temp String we use multiple times:
  String q="[a-z&&[^aeiouy]]",
   // Regex to get the first part (i.e. `creation` -> `creat` / `example` -> `ex`)
   a=s.replaceAll("(^"+q+"*[aeiouy]+"+q+").*","$1"), 
   // Get the trailing consonant and convert it
   b="pgtvkhjglmnbqrzdfwxs".charAt("bcdfghjklmnpqrstvwxz".indexOf(a.charAt(a.length()-1)))
   // Get the next vowel after the previous consonant from the input-String
    +s.replaceAll(a+q+"*([aeiouy]).*","$1");
  // Return the result:
  return a+b+b;
} // End of method

13

হাস্কেল , 143 141 138 137 136 বাইট

z h=elem h"aeiouy"
f i|(s,(m,c:x))<-span z<$>break z i,j:_<-filter z x,d<-"pgt.vkh.jglmn.bqrzd.fwx.s"!!(fromEnum c-98)=s++m++[c,d,j,d,j]

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


1
অসাধারণ! nxএক-বর্ণযুক্ত কিছু দিয়ে প্রতিস্থাপন করা 2 বাইট সংরক্ষণ করবে।
টমসডিং

zবাইরে ঘোষণা করা fএবং গার্ডের পরিবর্তে গার্ডগুলিতে স্যুইচ করা letঅন্য দুটি বাইট সংরক্ষণ করে: অনলাইনে চেষ্টা করে দেখুন!
লাইকনি

2
এবং আরও দুটি মিশ্রিত (s,v)<-break z i,(m,c:x)<-span z vকরে (s,(m,c:x))<-span z<$>break z i
লাইকনি

উদ্বোধনী প্রথম বন্ধনীর পাশে রেখে আরও একটি শেভ করতে পারেন let, ধন্যবাদ!
বারটাভলে

@ লাইকোনি আমি কি zবাইরে চলে যাওয়ার বিষয়ে অংশটি বুঝতে পারি না f?
বার্তাভেল

10

পাইথন, 261 260 বাইট

def c(s,t='bpcgdtfvgksz'):
 q,r,t='aeiouy',range(len(s)),t+t[::-1]
 c=[i for i in r if i>[j for j in r if s[j]in q][0]and s[i]not in q][0]
 C=([t[2*i+1]for i in range(12)if s[c]==t[i*2]]or s[c])[0]
 return s[:c+1]+(C+s[[i for i in r if i>c and s[i]in q][0]])*2

একটি অ রেজেক্স, রহস্যজনক সমাধান নয়। তৈরি করতে প্রায় 20 মিনিট সময় লাগল এবং গল্ফে আরও এক ঘন্টা সময় লাগল।

এটিতে পুরো পাইথন স্ট্যান্ডার্ড লাইব্রেরির চেয়ে সম্ভবত তালিকা বোধগম্যতা রয়েছে, বেশিরভাগ কারণেই আমি রেজেক্স জানি না ...

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


8

রুবি , 90 বাইট

->x{x[/(.*?#{$v='[aeiouy]'}+.).*?(#$v)/];$1+($1[-1].tr('bcdfgkpstvz','pgtvkgbzdfs')+$2)*2}

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

এটিকে কিছুটা বোঝাতে গিয়ে আমাদের কাছে এর সমতুল্য কিছু রয়েছে:

def covfefefify(x)
  v = '[aeiouy]'
  # Match x to a regular expression capturing:
  # Group 1:
  #  some characters (non-greedy)
  #  followed by some (greedy) non-zero number of vowels
  #  followed by exactly one character
  # Ungrouped:
  #  Some more (non-greedy) characters
  # Group 2
  #  Exactly one other vowel
  # By switching between greedy and non-greedy matches, we can capture longest and shortest vowel/consonant sequences without writing out all the consonants
  x[/(.*?#{v}+.).*?(#{v})/]
  # Glue it back together, replace the necessary consonants, duplicate where needed
  $1+($1[-1].tr('bcdfgkpstvz','pgtvkgbzdfs')+$2)*2
end

8

পাইথন 2, 251 246 245 239 237 234 229 211 বাইট

এখানে প্রথম জমা।

def f(s):
  r=c='';n=0;w='aeiouy';a='bcdfghjklmnpqrstvwxz'
  for i in s:
    if n<2:r+=i
    if n<1and i in w:n=1
    if n==1and i in a:c='pgtvkhjglmnbqrzdfwxs'[a.index(i)];n=2
    if n==2and i in w:r+=c+i+c+i;break
  return r

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

সহযোগী গল্ফাররা আমাকে সাহায্য করেছিল:

 Destructible Lemon / Wheat Wizard - 5 bytes
 Hubert Grzeskowiak - 1 byte
 musicman523 - 16 bytes

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

4
ধ্বংসাত্মক লেবু যা বলেছিল তা সঠিক, আপনি আপনার কোডের প্রথম স্তরের একটি একক স্পেস এবং দ্বিতীয় স্তরের একটি একক ট্যাবে ইন্ডেন্ট করে আপনার উত্সে আরও বেশি বাইট সংরক্ষণ করতে পারেন, এটি প্রদর্শন করতে কিছুটা কঠিন করে তুলবে, তবে আপনি 5 বাইট সংরক্ষণ করুন।
শ্রুতচিলিজম ওজাইক

1
4 লাইনের শেষে সেমিকোলনটি কী প্রয়োজনীয়?
হুবার্ট গ্রেজস্কোয়িয়াক

1
@ ওয়েইটসেন্ডি দেখুন আমি মনে করি আপনি নিজের শর্তাবলীর কিছু সংক্ষিপ্ত করতে পারবেন। প্রথম: আপনি পরিবর্তন করতে পারেন not nথেকে n<12 বাইট জন্য, যেহেতু আপনি জানেন nনেতিবাচক হতে হবে। এছাড়াও আপনি পরিবর্তন করতে পারেন n==3থেকে n>2যেহেতু আপনি জানেন nতার চেয়ে অনেক বেশী হতে হবে না 3। এছাড়াও আপনি ব্যবহার করতে পারেন কন্ডিশন জন্য পাইথন ঠাট প্রথম এবং দ্বিতীয় গত কমান এমনকি আরও: n=[n,1][i in w and n<1]; r+=[0,r][n<2]
musicman523

1
আপনি পরিবর্তন r,v,c=('',)*3করতে পারেন r=v=c='', যেহেতু স্ট্রিং অবিচ্ছেদ্য। আমি অন্যান্য চালাক কৌশলগুলির একটি গুচ্ছ চেষ্টা করেছি কিন্তু হতাশার সাথে সেগুলি ঠিক দীর্ঘ। অনলাইনে চেষ্টা করে দেখুন এটি যুক্তিযুক্ত হতে পারে ! আপনার পোস্টে লিঙ্ক করুন
musicman523

7

রুবি , 175 141 110 বাইট

->s{s=~/(.*?#{v='[aeiouy]'}+(#{c='[^aeiouy]'}))#{c}*(#{v})/;"#$1#{($2.tr('bcdfgkpstvz','pgtvkgbzdfs')+$3)*2}"}

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

Ungolfed

covfefify = -> (s) {
    from = 'bcdfgkpstvz'
    to   = 'pgtvkgbzdfs'

    vowels = "[aeiouy]"
    consonants = "[^aeiouy]"

    s.match(/(.*?#{vowels}+(#{consonants}))#{consonants}*(#{vowels})/)
    d = ($2.tr(from, to) + $3) * 2
    "#$1#{d}"
}

4
-34 বাইট সহHash[*"bpcgdtfvgkkgpbsztdvfzs".chars]
এরিক ডুমিনিল

1
যেহেতু ইনপুটটি সমস্ত বর্ণানুক্রমিক অক্ষরের গ্যারান্টিযুক্ত বলে মনে c=[^aeiou]হয়, তত সংক্ষিপ্ত। প্রতিটি পরিবর্তনশীল প্রথম ক্ষেপক -2 বাইট জন্য একযোগে এটা ধার্য আছে: /^(.*?${v='[aeiou]'}+(#{c='[^aeiou]})).../। শেষ $2.tr("b-z","pgtevkhijgl-obqrzdufwxys")পর্যন্ত হ্যাশ সমাধানের পরিবর্তে।
মান কালি

আপনি subexpressions ব্যবহার (14 বাইট সংরক্ষণ করতে পারবেন \g<n>ক্ষেপক পরিবর্তে), প্লাস অন্য 14 ব্যবহার @ ValueInk এর [^aeiou]পরামর্শ: s=~/^(.*?([aeiouy])+([^aeiou]))\g<3>*(\g<2>)/
জর্ডান

আসলে, এর সাথে একটি বাগ রয়েছে programming-> progkakaযা আমি বেশ খুঁজে বের করতে পারি না।
জর্দান

@ জর্দান দুর্ভাগ্যক্রমে স্যুব এক্সপ্রেশন কল \g<3>$ 3 এর মান আপডেট করে, তাই আমরা এই শর্টকাটটি ব্যবহার করতে পারি না।
suude

6

ক্রিস্টাল, 203 194 187 186 184 163 বাইট

o=""
ARGV[v=c=0].each_char{|a|r=/#{a}/
"aeiouy"=~r&&(v=x=1)||(c=v)
o+=a if c<2||x
c>0&&(x&&break||(o+=(i="pgtvkgbqrzdfs"=~r)?"bcdfgkpqrstvz"[i]: a))}
p o+o[-2..-1]

আমি মনে করি আপনি কাছাকাছি c=vo+=<...>
পেরেনগুলি

5

ম্যাটল্যাব / অষ্টাভে - 159 158 বাইট

নিম্নলিখিত ইনপুট স্ট্রিংটি সমস্ত ছোট হাত ধরে ধরে কাজ করে।

a=input('','s');m=ismember(a,'aeiouy');s='pgt vkh jglmn bqrzd fwx s';m(1:find(m,1))=1;i=find(~m,1);f=a(1:i);d=s(f(end)-97);m(1:i)=0;v=a(find(m,1));[f d v d v]

ব্যাখ্যা

  1. a = input('','s');: এসটিডিআইএন থেকে একটি স্ট্রিং আসে এবং এটিকে ভেরিয়েবলের মধ্যে সঞ্চয় করে a
  2. m=ismember(a,'aeiouy');: aস্বরগুলি কোথায় অবস্থিত তা নির্ধারণ করে স্ট্রিংয়ের সমান আকারের একটি বুলিয়ান অ্যারে প্রদান করে
  3. s='pgt vkh jglmn bqrzd fwx s';covfefeএকটি স্ট্রিং হিসাবে ব্যঞ্জনবর্ণের ম্যাপিং। এই স্ট্রিংটি 25 টি অক্ষরের দীর্ঘ এবং স্বরগুলি বাদ দেওয়া। স্বরটি 'a'সরানোর কথা বিবেচনা করা হয় এমন প্রথম অবস্থানটি সরানো হবে এবং অন্যান্য অবস্থানগুলি যেখানে স্বরগুলি অবস্থিত সেগুলি একটি ডামি স্পেস অক্ষর সহ স্থাপন করা হবে। এটি এমন হয় যে যখন আমরা স্বরবর্ণের পরে উপস্থিত প্রথম ব্যঞ্জনবর্ণটি নির্ধারণ করি, আমরা রূপান্তরিত শব্দের প্রথম উপাদান নির্ধারণ করতে এই স্ট্রিংয়ের একটি অক্ষর অ্যাক্সেস করার জন্য ব্যঞ্জনবর্ণকে এমন অবস্থানে রূপান্তর করব।
  4. m(1:find(m,1))=1: বুলিয়ান অ্যারের প্রথম অবস্থান নির্ধারণ করে যেখানে আমরা সমস্ত স্বর হিসাবে প্রথম স্বর পেলাম। এটি এমন হবে যাতে আমরা যখন প্রথম স্বরবর্ণ অনুসরণ করে পরবর্তী ব্যঞ্জনবর্ণের সন্ধান করব, আমরা এই অক্ষরগুলি উপেক্ষা করব।
  5. i=find(~m,1);: প্রথম স্বরবর্ণের পরে ব্যঞ্জনবর্ণ স্ট্রিংয়ের প্রথম অবস্থান সন্ধান করে।
  6. f=a(1:i): স্বর অনুসরণকারী প্রথম ব্যঞ্জনবর্ণের পরে স্ট্রিং সরিয়ে দেয়। আমরা কেবল স্ট্রিংয়ের প্রথম অবস্থান থেকে এই পয়েন্ট পর্যন্ত নমুনা করি।
  7. d=s(f(end)-97);: বাকী স্ট্রিংয়ের শেষ অক্ষরটি ধরুন এবং এটি অনুসন্ধানের স্ট্রিং থেকে আমাদের কোথায় নমুনা নেওয়ার প্রয়োজন তা আবিষ্কার করুন এবং সেই অক্ষরটি পান। ম্যাটল্যাব বা অক্টাভাতে একটি অক্ষর এবং সংখ্যার বিয়োগ করে অক্ষরটিকে তার ASCII কোডে রূপান্তর করে একটি পূর্ণসংখ্যা তৈরি করতে coalesces। এই ক্ষেত্রে, বর্ণমালার শুরুতে বর্ণের শুরুতে আমরা শেষ চরিত্রটি বিয়োগ করি যাতে আমাদের শুরুর তুলনামূলক অবস্থান দেয়। যাইহোক, b(98) দ্বারা বিয়োগের পরিবর্তে , আমরা aম্যাটল্যাব 0 'a'-এর পরিবর্তে 1 দ্বারা সূচীকরণ শুরু করার সাথে সাথে বিয়োগ করি '' এর এসসিআইআই কোডটি 97 is
  8. m(1:i)=0;: বুলিয়ান মাস্ক নেয় এবং ইনপুট স্ট্রিংয়ের সমস্ত অক্ষরকে প্রথম অবস্থান থেকে প্রথম ব্যঞ্জনবর্ণে একটি স্বরকে মিথ্যাতে অনুসরণ করে সেট করে।
  9. v=a(find(m,1));: ইনপুট স্ট্রিং থেকে প্রথম ব্যঞ্জনবর্ণ অনুসরণ করে পরবর্তী স্বরবর্ণটি সন্ধান করে।
  10. [f d v d v]: আমাদের covfefeআইড স্ট্রিং আউটপুট ।

উদাহরণ রান

>> a=input('','s');m=ismember(a,'aeiouy');s='pgt vkh jglmn bqrzd fwx s';m(1:find(m,1))=1;i=find(~m,1);f=a(1:i);d=s(f(end)-97);m(1:i)=0;v=a(find(m,1));[f d v d v]
coverage

ans =

covfefe

>> a=input('','s');m=ismember(a,'aeiouy');s='pgt vkh jglmn bqrzd fwx s';m(1:find(m,1))=1;i=find(~m,1);f=a(1:i);d=s(f(end)-97);m(1:i)=0;v=a(find(m,1));[f d v d v]
example

ans =

exxaxa

>> a=input('','s');m=ismember(a,'aeiouy');s='pgt vkh jglmn bqrzd fwx s';m(1:find(m,1))=1;i=find(~m,1);f=a(1:i);d=s(f(end)-97);m(1:i)=0;v=a(find(m,1));[f d v d v]
programming

ans =

progkaka

>> a=input('','s');m=ismember(a,'aeiouy');s='pgt vkh jglmn bqrzd fwx s';m(1:find(m,1))=1;i=find(~m,1);f=a(1:i);d=s(f(end)-97);m(1:i)=0;v=a(find(m,1));[f d v d v]
code

ans =

codtete

>> a=input('','s');m=ismember(a,'aeiouy');s='pgt vkh jglmn bqrzd fwx s';m(1:find(m,1))=1;i=find(~m,1);f=a(1:i);d=s(f(end)-97);m(1:i)=0;v=a(find(m,1));[f d v d v]
president

ans =

preszizi

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

http://www.tutorialspoint.com/execute_octave_online.php?PID=0Bw_CjBb95KQMdjROYVR0aFNrWXM

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


5

ক্লোজার, 182 156 অক্ষর

#(let[v #{\a\e\i\o\u\y}p(partition-by v %)[s m[c][n]](if(v(first %))(cons[]p)p)z[(or((zipmap"bcdfgkpstvz""pgtvkgbzdfs")c)c)n]](apply str(concat s m[c]z z)))

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

(partition-by v "president")

এর একটি বর্গক্ষেত্র প্রদান করে ((\p \r) (\e) (\s) (\i) (\d) (\e) (\n \t))

[s m [c] [n]] (if (v (first x)) (cons [] p) p)

মধ্যে SeQ Destructures s=(\p \r), m=(\e), c=\s, n=\i

বা "উদাহরণ" জন্য এটি s=[], m=(\e), c=\x, n=\a

(apply str (concat s m [c] [(l c) n] [(l c) n]))

একসাথে টুকরো টুকরো করে এবং স্ট্রিংফাইজ করে আউটপুট স্ট্রিংটি ফেরত দেয়।

এবং তারপরে আমি এখনও এটি সংকলন করার সময় যতটা শ্বেতস্পেস করতে পেরেছিলাম সরিয়েছি।

ডি-uglified:

(defn covfefify [x]
  (let [vowel? #{\a\e\i\o\u\y}
        parts (partition-by vowel? x)
        [start mid [consonant] [last-vowel]] (if (vowel? (first x)) (cons [] parts) parts)
        lookup #(or ((zipmap "bcdfgkpstvz" "pgtvkgbzdfs") %) %)]
    (apply str (concat start mid [consonant] [(lookup consonant) last-vowel] [(lookup consonant) last-vowel]))))

পিপিসিজিতে আপনাকে স্বাগতম, এবং দুর্দান্ত প্রথম উত্তর! আমরা আশা করি আপনি থাকবেন এবং আরও চ্যালেঞ্জগুলিতে অংশ নিয়ে মজা পাবেন। :-)
ETH প্রোডাকশনগুলি

যদি আপনি কোনও ফাংশন সংজ্ঞায়িত করেন তবে এর নামটি সম্ভবত যতটা সম্ভব সংক্ষিপ্ত হওয়া উচিত। cউদাহরণস্বরূপ আপনি কেবল মূল ফাংশনটি কল করতে পারেন । (আমরা বেনামে ফাংশনগুলিকেও অনুমতি দিই, যা অনেক ভাষায় সংক্ষিপ্ত হয়; সেগুলি ক্লোজুরে রয়েছে কিনা তা সম্পর্কে আমি নিশ্চিত নই)। আমি দেখতে পাচ্ছি যে আপনি ইতিমধ্যে আপনার কোডের অভ্যন্তরে এই উন্নতি করেছেন, তবে সম্ভবত এখানে খুব বেশি পরিবর্তন করার প্রয়োজন নেই।

5

আর, 341 টি অক্ষর

f=function(x){g=function(x,y)el(strsplit(x,y));a=g(x,'');v=g('aeiouy','');n=letters[-c(1,5,9,15,21,25)];l=data.frame(n,g('pgtvkhjglmnbqrzdfwxs',''));y=min(match(n,a)[which(match(n,a)>min(match(v,a),na.rm=T))]);m=l[which(l$n==a[y]),2];e<-a[-c(1:y)][min(match(v,a[-c(1:y)]),na.rm=T)];paste0(paste0(a[c(1:y)],collapse=''),m,e,m,e,collapse="")}

হরর্যান্ডস আর চেষ্টা, স্ট্রিংগুলি এত শক্ত কেন

পঠনযোগ্য সংস্করণ:

f = function(x) {
  g = function(x, y)el(strsplit(x, y))
  a = g(x, '')
  v = g('aeiouy', '')
  n = letters[-c(1, 5, 9, 15, 21, 25)]
  l = data.frame(n, g('pgtvkhjglmnbqrzdfwxs', ''))
  y = min(match(n, a)[which(match(n, a) > min(match(v, a), na.rm = T))])
  m = l[which(l$n == a[y]), 2]
  e <-a[-c(1:y)][min(match(v, a[-c(1:y)]), na.rm = T)]
  paste0(paste0(a[c(1:y)], collapse = ''), m, e, m, e, collapse = "")
}

আমি বিশ্বাস করি আপনার গণনা এটি বন্ধ - আমি 340 বাইট গণনা করি
টেলর স্কট


4

ব্লিটজ্যাক্স, 190 বাইট

s$=Input()For i=1To s.Length
f="aeiouy".Contains(s[i-1..i])If f v=i If c Exit
If v And c|f=0c=i
Next
t$="bpdtfvgkcgsz"x$=s[c-1..c]r=t.Find(x)~1If r>=0x=t[r..r+1]
x:+s[v-1..v]Print s[..c]+x+x

স্টিডিনের কাছ থেকে একটি শব্দ নেয় এবং স্টাডাউটের ফলাফল মুদ্রণ করে। ইনপুট শব্দটি ছোট হাতের এবং এটিতে একটি ব্যঞ্জনবর্ণের পরে কমপক্ষে একটি স্বর ধারণ করে।

বিন্যাস এবং পরিবর্তনশীল ঘোষণা সহ প্রোগ্রামের আরও পঠনযোগ্য সংস্করণ:

SuperStrict
Framework BRL.StandardIO

Local s:String = Input()
Local v:Int
Local c:Int

For Local i:Int = 1 To s.Length
    Local f:Int = "aeiouy".Contains(s[i - 1..i])
    If f Then
        v = i
        If c Then Exit
    End If
    If v And c | f = 0 Then c = i
Next

Local t:String = "bpdtfvgkcgsz"
Local x:String = s[c-1..c]
Local r:Int = t.Find(x) ~ 1
If r >= 0 Then x = t[r..r + 1]
x :+ s[v - 1..v]
Print s[..c] + x + x

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

ব্লিটজ্যাক্সের কোনও বিল্টিন রেজেক্স কার্যকারিতা বা অনুরূপ নেই, সুতরাং ইনপুট শব্দের অক্ষরের উপরে পুনরাবৃত্তি করার জন্য একটি লুপ ব্যবহৃত হয় যতক্ষণ না এটি স্বর খুঁজে না পায় যারপরে কমপক্ষে একটি ব্যঞ্জনের শৃঙ্খল অনুসরণ করা হয়। ভেরিয়েবল সি স্বরবর্ণের সেই ব্যঞ্জনবর্ণগুলির সর্বশেষের অবস্থান সংরক্ষণ করে। লুপটি দেখতে থাকে যে শৃঙ্খলার পরে আর একটি স্বর আছে এবং যদি তাই হয়, v অনুসারে আপডেট করা হয়। তারপরে সি-তে ব্যঞ্জনবর্ণটিকে "বিপিডিটিএফভিগেকসিজেস" স্ট্রিং-এ সন্ধান করা হবে যা প্রতিস্থাপনের টেবিল হিসাবে কাজ করে। যদি কোনও স্থানে ব্যঞ্জনবর্ণটি সারণীতে পাওয়া যায়, তবে সেই অবস্থানটি 1 সহ XOR- এড এবং ফলস্বরূপ অবস্থানে থাকা অক্ষরটি তার প্রতিস্থাপন হিসাবে ব্যবহৃত হবে। এক্সওআর অপারেশন 0 এ 1, 2 কে 3, 4 তে 5 ইত্যাদিতে পরিণত হয় এবং বিপরীতভাবে, যাতে খ পি, ডি দিয়ে আরও সরিয়ে যায়। শেষ অবধি, সি পর্যন্ত মূল স্ট্রিং

উদাহরণ ফলাফল:

কভারেজ covfefe

ক্রিয়েটডিডি

প্রোগ্রামিং প্রোগ্রাম

মূ .়তা স্তূপবিবি

বেলা ব্লাহহাহা


ব্লিটজম্যাক্স রেপোতে লিঙ্ক?
ধ্বংসাত্মক লেবু

@ ডেসট্রিকটিবললিমন ব্লিটজম্যাক্স মূলত শৌখিন গেমের অবদানের জন্য এবং অর্থের বিনিময়ে মালিকানাধীন সংকলক সহ একটি ভাষা হিসাবে তৈরি হয়েছিল। যদিও এটি এখন নিখরচায় এবং এখান থেকে পাওয়া যায় , আমি বিশ্বাস করি যে সংকলকটি এখনও মুক্ত উত্স নয়। সেখানে একটি বিকল্প বাস্তবায়ন (রেপো বিদ্যমান এখানে , তৈরী করে এখানে ), যা যদিও কেবলমাত্র একটি "অ কঠোর" সেটিং পরিবর্তনশীল ঘোষণা বাদ অনুমতি দেয় অভাবে উপরে কোডের ungolfed সংস্করণ চালাবে।
ফায়ারবল

সূচকে XOR এর চতুর ব্যবহার - আমি সম্ভবত কোনও দিন এটি ব্যবহার করব। ধন্যবাদ.
এআই ব্রেভেরি

4

পার্ল, 71 বাইট

s#[aeiouy]+(.)\K.*?([aeiouy]).*#"$1$2"=~y/bcdfgkpstvz/pgtvkgbzdfs/rx2#e

সাথে চালাও perl -pe। পূর্ববর্তী পার্ল সমাধানের তুলনায় কয়েক বাইট কম। স্বীকারোক্তিটি আমি সেখান থেকে কিছুটা অনুপ্রেরণা পেয়েছি।


4

05 এ বি 1 ই , 101 104 88 বাইট

-16 বাইটস Okx ধন্যবাদ

আমি একরকম আশা করি এই কাজ করা যেতে পারে পথ আরো দক্ষতার সঙ্গে।

žOÃćIsk>[DIs£¤žPså#\>]s[DIsèDžOså#\>]ŠŠ"bpcgdtfvgkhhjjkgllmmnnpbqqrrsztdvfwwxxzs"S2ôDí«ø`Šs¤sŠksŠèsŠì2׫

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

ব্যাখ্যা

                  Argument: s
žOÃ0èk            Get index of first vowel in s
>[DIs£¤žPså#\>]   Increment index and split s until last character of substring is a consonant
s[DIsèDžOså#\>]   Increment index an get character at index in s until character is a vowel
ŠŠ                Rearrange stack
.•7¶ëÒ—Öb´ƒ≠Ä“šʒƵJ^ÝV“Îpи•S2ôDí«ø`   Prepare character substitution map
Šs                Rearrange stack
¤                 Last character of substring
sŠ                Rearrange stack (yes, again)
k                 Index of last character in substitution key list
sŠ                Rearrange stack (it won't stop)
è                 Character at index in character substitution value list
sŠ                Rearrange stack (ONE LAST TIME)
ì2׫              Prepend substitution consonant before vowel, duplcicate and concatenate with the substring from the very beginning

আপনি প্রতিস্থাপন করতে পারেন "bpcgdtfvgkhhjjkgllmmnnpbqqrrsztdvfwwxxzs"সঙ্গে .•7¶ëÒ—Öb´ƒ≠Ä“šʒƵJ^ÝV“Îpи•15 বাইট সংরক্ষণ করতে
Okx

অন্য বাইট সংরক্ষণ করতে আপনি এর žOÃćIskসাথে প্রতিস্থাপন করতে পারেন žOÃ0èk
Okx

@ ওকএক্স আমি মনে করি আমাকে স্ট্রিংয়ের কয়েকটি সংক্ষেপণ কৌশল শিখতে হবে। ধন্যবাদ!
kalsowerus

@ ক্যালসওয়ারাস আমি জানি কিছুক্ষণ কেটে গেছে তবে আপনি নিজের উত্তর থেকে 8 বাইট গল্ফ করতে পারেন: žOÃнk>[DIs£¤žPså#\>]©s[DIsèDžOså#\>]s\.•7¶ëÒ—Öb´ƒ≠Ä“šʒƵJ^ÝV“Îpи•S2ôDí«ø`®θkèìDJ অনলাইনে চেষ্টা করে দেখুন। পরিবর্তে পরিবর্তিত পরিবর্তকটি ব্যবহার করে আমি সমস্ত অদলবদল এবং ট্রিপল-অদলবদল থেকে মুক্তি পেয়েছি। এবং হতে পারে н, এবং আমি পুরো স্ট্যাক একসাথে যোগদানের 2׫সাথে প্রতিস্থাপন করেছি DJ। PS: আমি একটি পৃথক কৌশল ব্যবহার করে 55 বাইট 05AB1E উত্তরও পোস্ট করেছি। (যার মধ্যে 05AB1E তে আরও ভালভাবে সংক্ষেপণের বোঝার লিঙ্ক অন্তর্ভুক্ত রয়েছে: ডি)
কেভিন ক্রুইজসেন

3

ক্রিস্টাল, 130 বাইট

c=/[aeiouy]/
x,y,z=ARGV[0].partition /[^aeiouy]*#{c}*/
k=z[0]
b=((i="pgtvkgbqrzdfs"=~/#{k}/)?"bcdfgkpqrstvz"[i]: k)+z[c]
p y+k+b*2

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

c = /[aeiouy]/

প্রথমে স্বরটি অনুসন্ধান করার জন্য একটি রেজেক্স সংরক্ষণ করুন c

x, y, z = ARGV[0].partition /[^aeiouy]*#{c}*/

প্রথম যুক্তিকে তিনটি ভাগে ভাগ করুন {"", স্ট্রিংটি প্রথম স্বরবর্ণের পরে প্রথম ব্যঞ্জনের আগে একটি অক্ষর না হওয়া পর্যন্ত, বাকী স্ট্রিং} এবং প্রতিটি উপাদানকে x, y এবং z এ সংরক্ষণ করুন।

k = z[0]

প্রথম চরিত্রটি পান, সম্পর্কিত ব্যঞ্জনা।

i = "pgtvkgbqrzdfs" =~ /#{k}/

বাম স্ট্রিংয়ের ভিতরে বা ব্যঞ্জনবর্ণের সূচক পান nil

b = ((i = ...) ? "bcdfgkpqrstvz"[i] : k) + z[c]

যদি iতা না হয় nilতবে দ্বিতীয় স্ট্রিংয়ের জন্য এই সূচকটি ব্যবহার করুন (গল্ফড হ্যাশ জাতীয় ধরণের)।

যদি iহয় nilতবে মূল চরিত্রটি ব্যবহার করুন।

এরপরে, প্রথম স্বরবর্ণ যুক্ত করুন z

p y + k + (b * 2)

অবশেষে প্রথম অংশটি প্রথম রেজেক্স থেকে yপ্রথম ব্যঞ্জন kএবং প্রথম গণনাযুক্ত স্ট্রিংয়ের দ্বিগুণ মুদ্রণ করুন b

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



2

লুয়া, 164 157 বাইট

w=arg[1]
i,j,a,b=w:find('[aeiouy]+([^aeiouy]+)(.)')
print(w:sub(1,j-#a)..(('pgtvkhjglmnbqrzdfwxs'):sub(('bcdfghjklmnpqrstvwxz'):find(a:sub(1,1)))..b):rep(2))

সম্পাদনা 1: ব্যঞ্জনবর্ণের পরে কোনও অক্ষর সন্ধান করে 7 বাইট অপসারণ করা হয়েছে (পুনরায় দেখুন)

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

এই প্রোগ্রামটি সিএলআই আর্গুমেন্টের একটি স্ট্রিং নেয় এবং এর স্বীকৃত সংস্করণটি মুদ্রণ করে।

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

এখানে একটি ফাংশন ব্যবহার করে একটি ক্লিনার সংস্করণ দেওয়া আছে (আমি একটিটি ব্যবহারের উদ্দেশ্যেছিলাম, তবে লুয়ার কীওয়ার্ডগুলি খুব দীর্ঘ are):

function covfefy(word)
  i, j, a, b = word:find('[aeiouy]+([^aeiouy]+)(.)')

  -- 'a' is one or several consonants following the first vowel, b is the first vowel after that
  -- 'i' is the index of the beginning of 'a', 'j' the index of 'b'

  cov = word:sub(1, j - #a)

  -- Look for the first letter of 'a' in the voiced/voiceless table
  f = ('pgtvkhjglmnbqrzdfwxs'):sub(('bcdfghjklmnpqrstvwxz'):find(a:sub(1, 1)))

  return cov .. (f .. b):rep(2)
end

কিছু মতামত দিতে নির্দ্বিধায় :)

দ্রষ্টব্য: আপনি যদি ভাবছেন তবে এটি মুনস্ক্রিপ্ট ব্যবহার করে দীর্ঘ 149 বাইট!


2

জাভাস্ক্রিপ্ট (ES5), 237 229 বাইট

function(s){r=['aeiouy','bcdfgkpstvz','pgtvkgbzdfs']i=0,p=''while(p+=s[i],r[0].indexOf(s[i++])<0);while(p+=s[i],~r[0].indexOf(s[i++]));b=s[i-1];while(r[0].indexOf(s[i++])<0);c=r[1].indexOf(b)d=((~c)?r[2][c]:b)+s[i-1]return p+d+d}

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

সম্ভবত সবচেয়ে গল্ফ নয়, তবে এটি ES5।

সম্প্রতি একটি বাগ ঠিক করা হয়েছে। উদাহরণ আউটপুট:

creation->creatdidi
coverage->covfefe
example->exxaxa
programming->progkaka
code->codtete
president->preszizi


2

সি #, 584 581 বাইট

-3 বাইটগুলি ধ্বংসাত্মক লেবুকে ধন্যবাদ

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

গল্ফ সংস্করণ:

namespace System{class B{static void Main(string[]args){var s="creation";var t="aeiou";int i=0,j=0,l=s.Length;char c=' ',f=' ';for(int x=0;x++<l;){if(t.IndexOf(s[x])>=0){i=x;break;}}for(int x=i;x++<l;){if(!(t.IndexOf(s[x])>=0)){j=x;c=s[x];for(int y=x;y++<l;){if (t.IndexOf(s[y])>=0){f=s[y];goto W;}}}}W:switch(c){case'b':c='p';break;case'c':c='g';break;case'd':c='t';break;case'f':c='v';break;case'g':c='k';break;case'k':c='j';break;case'p':c='b';break;case's':c='z';break;case't':c='d';break;case'v':c='f';break;case'z':c='s';break;}Console.Write(s.Substring(0,l-i-1)+c+f+c+f);}}}

পঠনযোগ্য সংস্করণ:

namespace System
{
    class B
    {
        static void Main(string[] args)
        {
            var s = "creation";
            var t = "aeiou";
            int i = 0, j = 0, l = s.Length;
            char c = ' ', f = ' ';
            for (int x = 0; x++ < l; )
            {
                if (t.IndexOf(s[x]) >= 0)
                {
                    i = x; break;
                }
            }
            for (int x = i; x++ < l;)
            {
                if (!(t.IndexOf(s[x]) >= 0))
                {
                    j = x; c = s[x];
                    for (int y = x; y++ < l;)
                    {
                        if (t.IndexOf(s[y]) >= 0)
                        {
                            f = s[y];
                            break;
                        }
                    }
                }
            }
            switch (c)
            {
                case 'b': c = 'p';
                    break;
                case 'c': c = 'g';
                    break;
                case 'd': c = 't';
                    break;
                case 'f': c = 'v';
                    break;
                case 'g': c = 'k';
                    break;
                case 'k': c = 'j';
                    break;
                case 'p': c = 'b';
                    break;
                case 's': c = 'z';
                    break;
                case 't': c = 'd';
                    break;
                case 'v': c = 'f';
                    break;
                case 'z': c = 's';
                    break;
            }
            Console.Write(s.Substring(0, l - i - 1) + c + f + c + f);
        }
    }
}

1
আমি কোনও বিশেষজ্ঞ নই, তবে আমি মনে করি আপনি লুপের জন্য তুলনামুলক, অর্থাত্ x++ < l, বা l > x++কোনও কিছুতে (সম্ভবত প্রথম কাজ না করে থাকলে) ইনক্রিমেন্টেশন যুক্ত করতে পারেন । যদিও নিশ্চিত না
ধ্বংসাত্মক লেবু

টিপস টিউটের জন্য ধন্যবাদ!
ব্র্যান্ডন হাও

2

স্মাইলব্যাসিক 3, 195 বাইট

এই প্রশ্নের খুব দেরী, তবে আমি কীভাবে স্মাইলব্যাসিক 3 এর জন্য একটি ভাল চ্যালেঞ্জকে প্রতিহত করতে পারি? একটি ক্রম পুনরাবৃত্তি বা একটি স্ট্রিং ম্যানিপুলেট মত বৈশিষ্ট্য অন্যান্য ভাষার মত যথেষ্ট শক্তিশালী না, তাই এটি যতটা সম্ভব ছোট করতে এটি একটি চ্যালেঞ্জ কিছুটা। ধরে নেওয়া শব্দগুলি UPPERCASE are

V$="AEIOUY
LINPUT W$REPEAT I=I+1UNTIL.<=INSTR(V$,W$[I-1])&&.>INSTR(V$,W$[I])J=I
WHILE.>INSTR(V$,W$[J])J=J+1WEND?LEFT$(W$,I+1)+("PGTVKHJGLMNBQRZDFWXS"[INSTR("BCDFGHJKLMNPQRSTVWXZ",W$[I])]+W$[J])*2

এখানে বিস্তারিত ব্যাখ্যা!


2

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

η.ΔžOSåàyžPSÅ¿à*}ÐIsKžOÃнsθU.•gÍĆdQ¸G•SDXåiÂXQÏθë\X}ìDJ

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

ব্যাখ্যা:

η                        # Suffixes of the (implicit) input
                         #  i.e. "creation" → ["c","cr","cre","crea","creat","creati","creato","creatio","creation"]
        }              # Find the first for which the following is truthy:
   žO                    #  Push vowels (including y): "aeiouy"
     S                   #  Convert it to a list of characters: ["a","e","i","o","u","y"]
      å                  #  Check for each if they're in the current (implicit) suffix
                         #   i.e. "creat" → [1,1,0,0,0,0]
       à                 #  Pop and push the max (basically check if any are truthy)
                         #   i.e. [1,1,0,0,0,0] → 1
   y                     #  Push the suffix again
    žP                   #  Push the consonants (excluding y): "bcdfghjklmnpqrstvwxz"
      S                  #  Convert to a list of characters: ["b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","x","z"]
       Å¿                #  Check for each if the suffix ends with it
                         #   i.e. "creat" → [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0]
         à               #  Pop and push the max (basically check if any are truthy)
                         #   i.e. [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0] → 1
   *                     #  Check if both are truthy
                         #   i.e. 1 and 1 → 1
           Ð             # Triplicate the found suffix
            I            # Push the input
             s           # Swap the top two items on the stack
                         #  i.e. stack contains now: "creat","creat","creation","creat"
K                        # Remove the suffix from the input
                         #  i.e. "creation" and "creat" → "ion"
 žOÃ                     # Only leave the vowels
                         #  i.e. "ion" → "io"
    н                    # Pop and push the first character
                         #  i.e. "io" → "i"
s                        # Swap again so the prefix is a the top of the stack again
 θ                       # Pop and push the last character
                         #  i.e. "creat" → "t"
  U                      # Pop and store it in variable `X`
   .•gÍĆdQ¸G            # Push string "bcdfkszgvtgp"
             S           # Convert to list of characters: ["b","c","d","f","k","s","z","g","v","t","g","p"]
              D          # Duplicate it
               Xåi       # If `X` is in this string:
                  Â      #  Bifurcate the list (short for Duplicate & Reverse copy)
                         #   i.e. ["b","c","d","f","k","s","z","g","v","t","g","p"]
                         #   → ["p","g","t","v","g","z","s","k","f","d","c","b"]
                   XQ    #  Check if they're equal to variable `X`
                         #   i.e. `X` = "t" → [0,0,1,0,0,0,0,0,0,0,0,0]
                     Ï   #  Only keep the truthy values
                         #   i.e. ["b","c",...,"g","p"] and [0,0,1,0,0,0,0,0,0,0,0,0]
                         #    → ["d"]
                      θ  #  Pop and push the last one
                         #   i.e. ["d"] → "d"
                 ë       # Else:
                  \      #  Discard the duplicate list from the stack
                   X     #  And push variable `X` again
                 }       # Close the if-else
                  ì      # Prepend the second character in front of the first
                         #  i.e. "d" and "i" → "di"
                   D     # Duplicate it
J                        # Join the stack together (and output implicitly)
                         #  i.e. "creat" and "di" and "di" → "creatdidi"

আমার এই 05AB1E টিপসটি দেখুন (বিভাগটি কীভাবে স্ট্রিংগুলি সংকোচন করবেন? কেন .•gÍĆdQ¸G•তা বোঝার জন্য )"bcdfkszgvtgp"

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