पत्र, बढ़ते जाओ! पं। 2


14

पहला पत्र, आगे बढ़ें! बहुत लोकप्रिय था, लेकिन उसकी सीमित भागीदारी थी। यह एक हल करने के लिए आसान हो जाएगा, लेकिन उम्मीद है कि गोल्फ में कुछ चालें शामिल हैं।

आपको केवल निचले अक्षरों का एक तार दिया जाता है। प्रत्येक अक्षर के लिए, वर्णमाला m में स्थिति के साथ , इसे स्थानांतरित करें ताकि यह अंत से m वें अक्षर बन जाए । यदि मीटर का मान स्ट्रिंग की लंबाई से अधिक है, तो इसे बहुत आगे ले जाएं। आउटपुट केवल पूरी तरह से परिवर्तित स्ट्रिंग।

उदाहरण:

"जिराफ़"

  • 'जी' वर्णमाला में 7 वां अक्षर है, यह पहले से ही पीछे से 7 वां अक्षर है, इसलिए इसे छोड़ दें।
  • 'i' 9 वां अक्षर है, क्योंकि 9 शब्द की लंबाई से बड़ा है, यह सामने की ओर जाता है, इसलिए स्ट्रिंग बन जाता है igraffe
  • 'r' 18 वां अक्षर है, जैसे 'i' यह सामने की ओर जाता है: rigaffe
  • 'ए' 1 अक्षर है, यह बहुत अंत तक जाता है: rigffea
  • letter f ’6 वा अक्षर है, यह पीछे से छठा बनता है: rfigfea
  • अगला 'f' भी 6 वा अक्षर है, इसलिए यह पीछे से भी 6 वाँ हो जाता है: rffigea
  • 'ई' 5 वां अक्षर है, यह पीछे से 5 वें पर जाता है: rfefiga

"फूल"

  • 'f' (6) => flower
  • 'ल' (12) => lfower
  • 'ओ' (15) => olfwer
  • 'w' (23) => wolfer
  • 'ई' (5) => weolfr
  • 'र' (18) => rweolf

"अनानास"

  • 'p' (16) => pineapple
  • 'i' (9) => ipneapple
  • 'एन' (14) => nipeapple
  • 'ई' (5) => nipaepple
  • 'ए' (1) => nipepplea
  • 'p' (16) => pnipeplea
  • 'p' (16) => ppnipelea
  • 'ल' (12) => lppnipeea
  • 'ई' (5) => lppneipea(सुनिश्चित करें कि आप स्थानांतरित करते हैं जो पहले से ही स्थानांतरित नहीं किया गया है! यहां यह कोई फर्क नहीं पड़ता, लेकिन नीचे यह करता है।)

इन 3 परिवर्धन के साथ परीक्षण के मामलों में सुधार के लिए @Neil का धन्यवाद:

"पिज़्ज़ा"

  • 'p' (16) => pizza
  • 'i' (9) => ipzza
  • 'z' (26) => zipza
  • 'z' (26) => zzipa(दूसरा z चलते हुए!)
  • 'ए' (1) => zzipa

"मंत्र"

  • 'ए' (1) => bracadabraa
  • 'b' (2) => racadabraba
  • 'र' (18) => racadabraba
  • 'ए' (1) => rcadabrabaa
  • 'c' (3) => radabrabcaa
  • 'ए' (1) => rdabrabcaaa
  • 'd' (4) => rabrabcdaaa
  • 'ए' (1) => rbrabcdaaaa
  • 'b' (2) => rrabcdaaaba
  • 'र' (18) => rrabcdaaaba
  • 'ए' (1) => rrbcdaaabaa

"पात्र"

  • 'c' (3) => haractecrs
  • 'ह' (8) => arhactecrs
  • 'ए' (1) => rhactecrsa
  • 'र' (18) => rhactecrsa
  • 'ए' (1) => rhctecrsaa
  • 'c' (3) => rhtecrscaa
  • 't' (20) => trhecrscaa
  • 'ई' (5) => trhcrescaa
  • 'र' (18) => rtrhcescaa
  • 's' (19) => srtrhcecaa

जवाबों:


9

CJam, 41 38 बाइट्स

lee_S+W%\{Xa-X1='`-/(Xa+\L*+}fX1>W%1f=

इसका परीक्षण यहां करें।


अपवोटिंग के रूप में यह एकमात्र अन्य उत्तर है जो मेरे सभी परीक्षण मामलों पर काम करता है।
नील

सभी परीक्षा मामलों को पास करने के लिए सबसे छोटा!
1914 में जियोकॉवेल

4

पायथन 3, 78 बाइट्स।

Orlp के लिए धन्यवाद 2 बाइट्स सहेजे गए।
7 बाइट डीएसएम के लिए धन्यवाद बचा लिया।

x=input()
y=[]
for z in x:m=max(len(x)-ord(z)+96,0);y[m:m]=z
print(''.join(y))

शब्द को एक सूची के रूप में बनाता है और फिर उसमें शामिल हो जाता है।


(q-p,0)[p>q]से लंबा है min(q-p,0)
orlp

यह है, लेकिन वह एक ही काम नहीं करता है। यह हमेशा 0 या एक नकारात्मक वापसी करने जा रहा है।
मॉर्गन थ्रैप

क्षमा करें, मेरा मतलब था max(q-p,0)
orlp

3

पायथन 2, 86 बाइट्स

a=input();k=list(a)
for i in a:k.remove(i);k.insert(ord(i)-97,i)
print"".join(k)[::-1]

पायथन 3, 88 बाइट्स

a=input();k=list(a)
for i in a:k.remove(i);k.insert(ord(i)-97,i)
print("".join(k)[::-1])

उदाहरण

अजगर 2:

$ python2 test.py
"flower"
rweolf

अजगर 3:

$ python3 test.py
flower
rweolf

3
k.removeपहला उदाहरण निकालता है, इसलिए यह कुछ के लिए असफल हो रहा है baa
Sp3000

2

जावास्क्रिप्ट ईएस 6, 136 134 131 बाइट्स

s=>([...s].map(c=>{s=s.replace(c,'');p=s.length+97-c.charCodeAt();s=s.substr(0,p)+c.toUpperCase()+s.substring(p)}),s.toLowerCase())

ध्यान दें कि मैं इस बात का बहुत ध्यान रखता हूं कि एक ही चरित्र को दो बार न pizzaहिलाएं , अन्यथा zipzaकब बदलना चाहिए zzipa। पात्रों को समय से पहले नहीं हटाने के साथ एक किनारे का मामला भी है; charactersशायद हो जाता है srtrchaeacया srtrheccaaयह होना चाहिए अगर आप इसे गलत तरीके से करते हैं, लेकिन srtrhcecaa। एक और मुश्किल शब्द है abracadabraजिसके लिए आउटपुट rrabaaadcbaगलत होगा; rrbcdaaabaaसही होगा।

संपादित करें: दो बाइट्स को शेव करके उपयोग किया जाता है जो स्वचालित रूप से सीमा 0..length पर अपने तर्कों को प्रस्तुत करता है।

संपादित करें: उपयोगकर्ता द्वारा16865 द्वारा सुझाई गई सामग्री के पहले विकल्प को बदलकर तीन बाइट्स को शेव किया गया।


मुझे लगता है कि आप substrइसके बजाय उपयोग कर सकते हैं substring
user81655

sliceबेहतर है (मुझे लगता है)।
मामा फन रोल

@। वह इसलिए नहीं जा सकता क्योंकि नकारात्मक संख्याएं उसे sliceतोड़ देती हैं।
user81655

ओह उस बारे में भूल गया।
मामा फन रोल

हाँ, pizzaमेरी पोस्ट पर आपके द्वारा डाले गए परीक्षण के मामले में थोड़ी गलती थी , लेकिन मैंने इसे ठीक कर दिया।
जियोकॉवेल

1

पायथ, 18 17 बाइट्स

uXeS,Z-lzhx;HGHzk

टेस्ट सूट

इनपुट स्ट्रिंग को कम करने, एक स्ट्रिंग, बेस केस खाली स्ट्रिंग में डालने, सही स्थिति में उपयोग करने से आईटरेट्स।


1

S, 23 चार्ट / 40 बाइट्स

ᴉⓜΞăМƲ ïꝈ-ᶛą$,0),0,$;Ξ⨝

Try it here (Firefox only).

व्याख्या

ᴉⓜΞăМƲ ïꝈ-ᶛą$,0),0,$;Ξ⨝ // implicit: ï=input, ᴉ=input split into chars, Ξ=empty array, ᶛ=lowercase alphabet
ᴉⓜ                      // map over input chars
   ΞăМƲ ïꝈ-ᶛą$,0),0,$;   // use splice to insert map item into Ξ at requested index
                      Ξ⨝ // join Ξ
                         // implicit output
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.