डुप्लिकेट को ध्वस्त करके इस स्ट्रिंग को ज़िगज़ैग करें


16

एक स्ट्रिंग को देखते हुए, आपका काम इसे नीचे बताए अनुसार एक ज़िगज़ैग जैसी संरचना में ढहना है।

एक ज़िगज़ैग में तह

हम "Mississippi"एक उदाहरण के रूप में स्ट्रिंग लेंगे :

  1. सबसे पहले, सबसे लंबे समय तक उपसर्ग केवल अद्वितीय वर्णों से मिलकर बनता है:

    Mis
    
  2. जब आप पहली बार नकली चरित्र तक पहुँचने सी , इसे अनदेखा, और उत्पादन सबसे लंबे समय तक उपसर्ग (शेष स्ट्रिंग के विशेष अक्षर से मिलकर issippi) खड़ी, की पहली आवृत्ति नीचे सी :

    Mis
      i
      s
    
  3. क्षैतिज और ऊर्ध्वाधर निरंतरता के बीच बारी-बारी से प्रक्रिया को दोहराएं। लेकिन अब सावधान रहें (चरण 1 पर) डुप्लिकेट चरित्र की नवीनतम घटना से क्षैतिज रूप से आउटपुट जारी रखने के लिए, जो जरूरी नहीं कि अंतिम एक है, जैसा कि इस मामले में है:

    Mis
      i
      sip
    -----
    Mis
      i
      sip
        i
    

नियम

  • स्ट्रिंग में केवल मुद्रण योग्य ASCII वर्ण होंगे, लेकिन इसमें किसी भी प्रकार का व्हाट्सएप नहीं होगा।
  • आप किसी भी प्रोग्रामिंग भाषा में प्रतिस्पर्धा कर सकते हैं और इनपुट ले सकते हैं और किसी भी मानक विधि के माध्यम से और किसी भी उचित प्रारूप 1 में आउटपुट प्रदान कर सकते हैं , जबकि ध्यान दें कि इन खामियों को डिफ़ॉल्ट रूप से मना किया गया है। यह , इसलिए हर भाषा के लिए सबसे कम सबमिशन (बाइट्स में) जीतता है।
  • 1 इनपुट: स्ट्रिंग / पात्रों की सूची / जो कुछ भी आपकी भाषा का उपयोग तार का प्रतिनिधित्व करने के लिए करता है। आउटपुट: बहुस्तरीय स्ट्रिंग, रेखाओं का प्रतिनिधित्व करने वाले तारों की सूची या पात्रों / लंबाई -1 तारों की सूची की सूची, लेकिन यदि संभव हो तो अपने उत्तर में अपने कोड का एक सुंदर-प्रिंट संस्करण शामिल करें।
  • अतिरिक्त स्थानों के बारे में, आउटपुट में हो सकता है:
    • प्रमुख / नई अनुगामी अनुगामी
    • प्रत्येक पंक्ति / अंत में रिक्त स्थान अनुगामी
    • प्रत्येक पंक्ति पर अग्रणी स्थान की एक सुसंगत संख्या
  • आपको क्षैतिज रूप से आउटपुट करना शुरू करना होगा, हो सकता है कि आप लंबवत शुरू करें।

परीक्षण के मामलों

इनपुट:

"उत्तम"
"मिसिसिपी"
"ऑडिटीज"
"Trivialities"
"Cthulhu"
"PPCG"
"POpOpOpOpOpOp"
"ABCCCE"
"ABCCCECCEEEEC"
"Abcdcebffg"
"Abca"
"Aaaaaaaa"

अनुरूप आउटपुट:

पर्फ़
 सी
 टी
गलत
  मैं
  घूंट
    मैं
ओड
 एँ
 टी
Triv
  ए
  एल
  एँ
  टी
Cthul
  यू
पी
सी
जी
पीओ 
OPO
पॉप
 पी
एबीसी
  सी
  इ
एबीसी
  सीसीई
  ई ईसी
ऐ बी सी डी
  इ
  ख
  FG
एबीसी
ए
ए.ए.
 ए

@JungHwanMin क्योंकि आपको पहले वापस नहीं कूदना bचाहिए, क्योंकि आपको केवल शेष स्ट्रिंग में डुप्लिकेट पर विचार करना चाहिए , "ब्रांचिंग" के बाद। एक बार जब आप दूसरे तक पहुँच जाते हैंc , तो आप शेष स्ट्रिंग के अनूठे वर्णों के सबसे लंबे उपसर्ग का उत्पादन करते हैं , जो है ebffg(इस प्रकार ebfलंबवत आउटपुट करना और उसके बाद क्षैतिज रूप से जारी रखना), इसलिए आपको स्ट्रिंग के भाग से वर्णों के बारे में चिंता करने की ज़रूरत नहीं है अभिविन्यास स्विच करने से पहले ही आउटपुट किया गया था। यदि यह अभी भी आपको अस्पष्ट लगता है, तो मैं इस परीक्षण मामले के साथ एक और कदम-दर-चरण उदाहरण बनाऊंगा।
मिस्टर एक्सकोडर

हमें कम / ऊपरी मामले को कैसे संभालना चाहिए? उदाहरण के लिएABCcde
रॉड

आपको उन्हें विभिन्न पात्रों के रूप में मानना ​​चाहिए। जैसे "A" ≠ "a"। के लिए उत्पादनABCcde सिर्फ होगाABCcde
श्री Xcoder

टेस्ट केस का सुझाव:AAAAAAAA
जंगवान मिन

5
@JungHwanMin AAAAAAAAdded कि एक भी।
श्री एक्सकोडर

जवाबों:


2

वुल्फ्राम भाषा (गणितज्ञ) , 143 बाइट्स

{#}//.{q___,a_,r___,a_,Longest@s___}:>{q}~f@{a,r}~{{s}}//.{q_~f@a_~s_}/;s~FreeQ~f:>(PadLeft@{q~Join~#,##2}&)@@PadRight@Join[{a},s]/. 0->" "&

इसे ऑनलाइन आज़माएं!

शामिल है 0xF8FF, जो \[Transpose]ऑपरेटर से मेल खाती है ।

यह एक स्ट्रिंग में परिणाम कठिन था। प्रत्येक शाखा प्राप्त करना इतना कठिन नहीं है:#//.{q___,a_,r___,a_,Longest@s___}:>{q,a,{r},{s}}&


2

अजगर २ , 131 बाइट्स

X=Y=y=0
s=input()
o=()
l={}
for i in s:o+=[' ']*len(s),;exec('l[i]=X,Y','y^=1;X,Y=l[i];l={}')[i in l];o[Y][X]=i;X+=y<1;Y+=y
print o

इसे ऑनलाइन आज़माएं!

-1 लिन को धन्यवाद ।

लंबाई -1 स्ट्रिंग्स की सूचियों के टपल के रूप में प्रिंट करता है। सुंदर-मुद्रित उत्पादन


1

पायथन 2 , 184 176 175 168 बाइट्स

-5 बाइट्स मिस्टर एक्सकोडर का धन्यवाद

def f(x):i,k=[p for p in enumerate(map(x.find,x+"z"))if cmp(*p)][0];return[x[:i]+' '*len(x)]+[' '*k+''.join(d)+i*' 'for d in zip(*f(x[i+1:]))]if x[len(set(x)):]else[x,]

इसे ऑनलाइन आज़माएं!


मुझे नहीं लगता कि नवीनतम बचत वैध है; यदि इनपुट सम्‍मिलित है तो क्‍या होगा \? इसके अलावा, आप लंबाई -1 स्ट्रिंग्स की सूची की सूची के रूप में आउटपुट कर सकते हैं, जैसा कि मैं अपने समाधान में करता हूं, ओपी के अनुसार।
आउटगोल्फर


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.