প্রতিটি চরিত্রের প্রথম উপস্থিতিতে স্ট্রিলটি বিভক্ত করুন


45

সম্পর্কিত।

একটি মুদ্রণযোগ্য এএসসিআইআই স্ট্রিং দেওয়া হয়েছে, এটিকে নতুন উপ-স্ট্রিং দিয়ে প্রতিবারের মতো নতুন খালি স্ট্রিংয়ের একটি তালিকাতে বিভক্ত করুন, যা পূর্বে একই ক্ষেত্রে দেখা যায় নি, দেখা যায়।

উদাহরণ

"mississippi" → ["m","i","ssissi","ppi"]

"P P & C G" → ["P"," P ","& ","C ","G"]

"AAA" → ["AAA"]

"Adam" → ["A","d","a","m"]

"" → []


উপাখ্যান : ফলাফলটিতে 0 থেকে 95 টি উপাদান থাকবে। 95 তম সাব-স্ট্রিং অগত্যা শেষ অবধি চলতে থাকবে কারণ সেই সময়ে, সমস্ত মুদ্রণযোগ্য এএসসিআইআই অক্ষর একটি সাব-স্ট্রিং শুরু করেছে, সুতরাং প্রতিটি অতিরিক্ত অক্ষর এর আগে ঘটেছে এবং সুতরাং নতুন উপ-স্ট্রিংটি শুরু করার কারণ হতে পারে না।


1
একটি উদাহরণ রয়েছে "এবং এটি 'একটি ভাল ধারণা বলে মনে হচ্ছে।
Emigna

চান ""[""]গ্রহণযোগ্য হতে পারে?
আর্নল্ড

5
@ এমিগনা এটির কোনও আরও স্পষ্টতা না নিয়ে উদাহরণস্বরূপ আউটপুট ফর্ম্যাটটির সাথে মেসেজ করে।
অ্যাডাম

1
যদি একটি নিউলাইন-বিভাজিত স্ট্রিং হিসাবে আউটপুটিং হয় তবে সেখানে কোনও শীর্ষস্থানীয় / ট্রেলিং করা নতুন লাইন থাকতে পারে?
wastl

2
@ ওয়াস্টল উহ, আমি এই ক্ষেত্রে এটির অনুমতি দেব কারণ এটি খালি খণ্ডগুলি নির্দেশ করতে পারে না, যদিও এটি আমার পূর্ববর্তী [""]অবৈধ সিদ্ধান্তের সাথে সাংঘর্ষিক । দীর্ঘশ্বাস.
অ্যাডাম

উত্তর:


22

জেলি , 4 বাইট

QƤĠị

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

ব্যাখ্যা

QƤĠị  Input is a string, say s = "adam"
 Ƥ    For each prefix of s: ["a","ad","ada","adam"]
Q     remove duplicates: ["a","ad","ad","adm"]
  Ġ   Group indices by equal values: [[1],[2,3],[4]]
   ị  Index into s: ["a","da","m"]

টিআরও-র লিঙ্ক প্রদর্শিত স্ট্রিংগুলির অভ্যন্তরীণ উপস্থাপনাটি কিছুটা আলাদা।


10

রেটিনা , 9 বাইট

q1,`.
¶$&

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

ব্যাখ্যা

প্রতিটি অক্ষর ( .) মেলান , পুনরাবৃত্তি হওয়া ম্যাচগুলি বাতিল করুন ( q), প্রথম ম্যাচটি বাতিল করুন ( 1,) এবং প্রতিটি ম্যাচের সামনে একটি লাইনফিড .োকান ¶$&


6

05 এ বি 1 , 11 বাইট

ÙSk¥sg¸«£õK

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

ব্যাখ্যা

Ù             # remove duplicates in input
 S            # split to a list of characters
  k           # get the (first) index of each character in the input
   ¥          # calculate delta's
    sg¸«      # append the length of the input
        £     # split the list into pieces of these sizes
         õK   # remove empty string (for the special case "" -> [])

1
এই উত্তরটি জুড়ে আসা যে কোনও ব্যক্তির জন্য , 05AB1E এর নতুন সংস্করণে ¸«থাকতে পারে ª
কেভিন ক্রুইজসেন

6

সি,  75   65  63 বাইট

10 ডিজিটাল ট্রমা এবং 10 বাইট সংরক্ষণের জন্য @ ডিজিটাল ট্রমা ধন্যবাদ এবং প্রতিটি বাইট সংরক্ষণের জন্য @ গ্যাস্ট্রপনার এবং @ l4m2 উভয়কে ধন্যবাদ!

f(char*s){for(int l[128]={};*s;putchar(*s++))l[*s]++||puts(l);}

একটি শীর্ষস্থানীয় নিউলাইন প্রিন্ট করে।

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

শীর্ষস্থানীয় নিউলাইন (71 বাইট) ছাড়াই:

f(char*s){int l[128]={};for(l[*s]=1;*s;putchar(*s++))l[*s]++||puts(l);}

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



@ গ্যাস্ট্রোপনার চতুর কৌশল; ধন্যবাদ!
স্টেডিবক্স

{0}=> {}?
l4m2

@ l4m2 হ্যাঁ, ধন্যবাদ!
স্টিডিবক্স

5

পার্ল 6 ,  58 52  40 বাইট

{$/={};.comb.classify({$+=!$/{$_}++}).sort».value».join}

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

*.comb.classify({$+=!(%){$_}++}).sort».value».join

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

*.classify({$+=!(%){$_}++}).sort».value

এটি ব্যবহার করে দেখুন
(ইনপুট হ'ল অক্ষরগুলির একটি তালিকা এবং আউটপুট অক্ষরের তালিকার একটি তালিকা)

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

*                   # parameter for WhateverCode lambda

  .classify(        # classify that list
    {
        $           # anonymous scalar state variable (accumulator)

      +=            # increment it if:

        !           # Bool invert the following
          (
            %       # anonymous hash state variable
          ){ $_ }++ # look to see if the character was seen already
    }
  ).sort\           # sort the Pairs by key (makes the order correct)
  ».value           # get the value from each Pair

থেকে আউটপুট classifyহয়

{ # Hash
  1 => ['m'],
  2 => ['i'],
  3 => ['s','s','i','s','s','i'],
  4 => ['p','p','i'],
}

এবং .sortকেবল এটিকে রূপান্তরিত করে:

[
  1 => ['m'],
  2 => ['i'],
  3 => ['s','s','i','s','s','i'],
  4 => ['p','p','i'],
]

».value কীগুলি সরিয়ে দেয়

[
  ['m'],
  ['i'],
  ['s','s','i','s','s','i'],
  ['p','p','i'],
]

চাবিগুলি কেন কখনও অর্ডার ছাড়বে? সন্নিবেশ অর্ডার মত ট্র্যাক করা হয়নি HashMapবনাম একটি LinkedHashMapযেখানে অর্ডার মেমরির বনাম সন্নিবেশ অর্ডার উপর ভিত্তি করে তৈরি জাভা?
যাদু অক্টোপাস উরন

1
@ ম্যাজিক অ্যাক্টপাস ইউরান পার্লের কোনও সংস্করণই হ্যাশকে অর্ডার দেয় নি। আসলে পার্ল 5 সংস্করণ 18 হ্যাশকে আরও এলোমেলো করে তোলে যা একটি নির্দিষ্ট ধরণের পরিষেবা আক্রমণকে অস্বীকার করার সম্ভাবনা কম সম্ভব করে এবং বগি ব্যবহারকারী কোডটি এর সাথে বগি আচরণটি প্রায়শই প্রকাশ করে দেয়। এখন কেউ ট্র্যাক রাখতে পারে না এমন কোনও ক্লাস প্রয়োগ করতে পারে (এবং সম্ভবত রয়েছে) তবে এটি লোড এবং ব্যবহার করতে 5 টিরও বেশি অক্ষর লাগবে।
ব্র্যাড গিলবার্ট 202

5

জে , 7 বাইট

~:<;.1]

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

ব্যাখ্যা

নুব চালুনির সুযোগ জ্বলে!

~: <;.1 ]
        ]  Input
~:         Nub sieve (1 if the character is the first instance in string)
    ;.1    Split input on 1s in nub sieve
   <       And box each

2
আমি ঠিক একই পোস্ট করতে চলেছি (আশ্চর্যরূপে নয়) উত্তর, এটি ভাল যে আমি তার আগে আপনার জমাটি একবার দেখেছিলাম :)
গ্যালেন ইভানভ

2
@ গ্যালেনিভানভ আমি - এবং আমি বেশিরভাগ জে গল্ফারদের কল্পনাও করি - নব চালুনি বা স্ব-শ্রেণিবদ্ধকরণের সুযোগটি উপভোগ করি।
কোলে

5

তবে, তবে ... ওহ আমার।
অ্যাডম

আমার সন্দেহ হয়েছিল আপনি সম্ভবত নতুন আদিম (⊆) এর কারণে এই চ্যালেঞ্জটি পোস্ট করেছেন। স্পষ্টতই নয় :)
ngn

দেখে মনে হচ্ছে একটি বিব্রত কিર્বি শিশুর বোতলটি ধারণ করছেন।
যাদু অক্টোপাস উরন

প্রত্যেকের জন্য যেমন আমার মতো "কির্বি" সন্ধান করা দরকার - এটি একটি জাপানি ভিডিও গেমের একটি নৃতাত্ত্বিক গোলাপী বল
এনএনজি

5

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

Ùvyy¶ì.;

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


সর্বদা 1 পূর্ববর্তী নিউলাইনটি আউটপুট আসবে, যা স্থির এবং বিভাজনের সূচক নয়, 10-বাইট বিকল্প যা পূর্ববর্তী নিউলাইনটিকে আউটপুট দেয় না Ùvyy¶ì.;}¦, আপনি এখানে চেষ্টা করতে পারেন । অ্যাডামের মতে একটি পূর্ববর্তী বা অনুসরণীয় নতুন লাইন গ্রহণযোগ্য।


Input      = mississippi                               | Stack
-----------#-------------------------------------------+----------------------------------
Ù          # Push unique letters of first input.       | ['misp']
 v         # Iterate through each unique letter.       | []
  yy       # Push 2 copies of the letter (or yD)       | ['m','m']
    ¶      # Push a newline char.                      | ['m','m','\n']
     ì     # Prepended to the letter.                  | ['m','\nm']
      .;   # Replace first instance with '\n + letter' | ['\nmississippi']

প্রতিটি পুনরাবৃত্তির পরে আমরা পাই:

['\nmississippi'] > ['\nm\nississippi'] > ['\nm\ni\nssissippi'] > ['\nm\ni\nssissi\nppi']

যা হলো:

m
i
ssissi
ppi

নিস! ন্যায্য ব্যবধানে আমাকে
মারধর করুন

@ এমিগনা এটি আপনার উত্তর সম্পর্কে 2 দিনের মত মন্তব্য হিসাবে বসে ছিল তখন আমি কেবল এটি খ / সি এর কোনও প্রতিক্রিয়া জানালাম না: পি।
ম্যাজিক অক্টোপাস উরন

অদ্ভুত, এটি সম্পর্কে কোনও বিজ্ঞপ্তি দেখেনি। যদিও এর নিজস্ব উত্তরের জন্য যথেষ্ট ভিন্ন :)
এমিগিনা

@ এমিগনা ভাল, মানে আমি এটি মুছে ফেলেছি হা।
যাদু অক্টোপাস উরন

লুপ এড়িয়ে যাওয়া একটি বাইট সংরক্ষণ করে ÙSD¶ì.;। আমরা কেন আগে এটি ভেবে দেখিনি তা নিশ্চিত নয়: পি
এমিগিনা

5

হাস্কেল , 39 বাইট

foldl(\s c->s++['\n'|all(/=c)s]++[c])""

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

প্রথমবারের মতো প্রদর্শিত প্রতিটি অক্ষরের আগে একটি নিউলাইন প্রতীক সন্নিবেশ করানো হয়, যার ফলে একটি শীর্ষস্থানীয় নিউলাইন সহ একটি নিউলাইন-পৃথক স্ট্রিং হয়। শুরুতে যোগ lines.একটি তালিকা উত্পাদন করতে।


হাস্কেল , 55 বাইট

(""%)
_%[]=[]
p%s|(a,b)<-span(`elem`s!!0:p)s=a:(a++p)%b

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

বারবার উপসর্গটি প্রথম অক্ষর এবং এটি অনুসরণ করে এমন অদ্বিতীয় অক্ষরগুলির সাথে থাকে।


@ উইট উইজার্ড ওফস, হ্যাঁ lines,।
xnor

tail.linesঅতিরিক্ত খালি স্ট্রিংটি এখনই সরিয়ে ফেলতে চাই যা আমি এটি সম্পর্কে ভাবছি।
গম উইজার্ড

4

এপিএল (ডায়ালগ) , 9 বাইট

ধন্যবাদ, এরিক আউটগলফার 1 বাইট সংরক্ষণের জন্য!

⊢⊂⍨⍳∘≢∊⍳⍨

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

ব্যাখ্যা:

⍳⍨: প্রতিটি চরিত্রের জন্য, তার প্রথম উপস্থিতির সূচক পান। যেমনmississippi -> 1 2 3 3 2 3 3 2 9 9 2

⍳∘≢: ইনপুটটির দৈর্ঘ্য 1 থেকে শুরু করে।

: সদস্যতা। যেমন1 2 3 4 5 6 7 8 9 10 11∊1 2 3 3 2 3 3 2 9 9 2 -> 1 1 1 0 0 0 0 0 1 0 0

⊢⊂⍨: 1উপরের ভেক্টরে নতুন পার্টিশন সহ ইনপুট স্ট্রিংটি পার্টিশন করুন


9 বাইট (monadic fgএবং monadic f∘gএকই আচরণ করে)
এরিক দি আউটগলফার

এর বদলে কেন =?
অ্যাডম

লেখার সময়, আমি সূচকগুলি সঠিক অবস্থানে থাকবে তা ভেবে দেখিনি। যদিও এটি স্পষ্ট যে তারা
হ'ল

4

জাপট , 11 বাইট

‰ r@=iRUbY

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

ব্যাখ্যা

এই দ্বারা অনুপ্রাণিত হয় ম্যাজিক অক্টোপাস ভস্মাধার 'র 05AB1E সমাধান

‰ r@=iRUbY    Implicit: U = input string
‰             Split U into chars, and keep only the first occurrence of each.
   r@          Reduce; for each char Y in this string...
        UbY      Find the first index of Y in U.
      iR         Insert a newline at this index in U.
     =           Set U to the result.
               As reduce returns the result of the last function call, this gives the
               value of U after the final replacement, which is implicitly printed.

1
জাপ্ট এখানে একটি পরিচয়ের সংকট দেখা দিচ্ছে, এটি কোনও কারণে নিজেকে রুবি বলে অভিহিত করছে। iRUbY!
যাদু অক্টোপাস উরন

3

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

7 টি বাইট সংরক্ষণ করা হয়েছে: একটি শীর্ষস্থানীয় নিউলাইনটি স্পষ্টভাবে অনুমোদিত হয়েছিল (ধন্যবাদ @ শেগি!)

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

s=>s.map(c=>s[c]=s[c]?c:`
`+c).join``

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



3

ব্রেনফাক, by 66 বাইট

,[>+[<[>+<<-<+>>-]>[>]<<[[+]++++++++++.>>>]<]<[>+<-]>>>[>>]<<-.>,]

বিন্যাসকৃত:

,
[
  >+
  [
    <[>+< <-<+>>-]
    >[>]
    <<[[+]++++++++++.>>>]
    <
  ]
  <[>+<-]
  >>>[>>]
  <<-.>,
]

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

আউটপুটে শীর্ষস্থানীয় নিউলাইনটি (যা কেবলমাত্র ইনপুটটি খালি না থাকলে মুদ্রিত হয়) xমূল (বহিরাগত) লুপটির বডি প্রতিস্থাপন করে 5 বাইটের ব্যয়ে সরিয়ে ফেলা যায় .>,[x]



2

কে 4 , 19 বাইট

সমাধান:

$[#x;(*:'.=x)_;,]x:

উদাহরণ:

q)k)$[#x;(*:'.=x)_;,]x:"mississippi"
,"m"
,"i"
"ssissi"
"ppi"
q)k)$[#x;(*:'.=x)_;,]x:"P P & C G"
,"P"
" P "
"& "
"C "
,"G"
q)k)$[#x;(*:'.=x)_;,]x:"AAA"
"AAA"
q)k)$[#x;(*:'.=x)_;,]x:"Adam"
,"A"
,"d"
,"a"
,"m"
q)k)$[#x;(*:'.=x)_;,]x:""
,[""]

ব্যাখ্যা:

8 বাইট কেবল হ্যান্ডেল করার জন্য ""...

$[#x;(*:'.=x)_;,]x: / the solution
                 x: / save input as variable x
$[  ;         ; ]   / $[condition;true;false]
  #x                / length of x ("" has length 0, i.e. false)
             _      / cut right at left indices
     (      )       / do together
          =x        / group x into key/value (char!indices)
         .          / return value (get indices)
      *:'           / first (*:) each
               ,    / enlist, "" => [""]

2

পাইথন 2 , 81 74 বাইট

def f(s):d=sorted(map(s.find,set(s)));print map(lambda a,b:s[a:b],d,d[1:])

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



@ জোনাথান অ্যালান এটি একটি বিভ্রান্তিকর পার্শ্ব-প্রতিক্রিয়া, আদেশ setরাখবেন না, পাল্টা-প্রমাণ ->s='c'*6+'a'*100+'b'
রড

আমি জানি আমরা ভবিষ্যতে বাস্তবায়নের ক্ষেত্রে এটির উপর নির্ভর করতে পারি না তবে আমি বিশ্বাস করি যে পূর্ণসংখ্যার হ্যাশ হওয়ার কারণে আমরা সেটটিতে অর্ডার করা পূর্ণসংখ্যাগুলি অর্ডার বজায় রাখি (যেমনটি আপনি দেখিয়েছেন অন্য বস্তুর ক্ষেত্রে এটি সত্য নয় - আপনি কি খুঁজে পেতে পারেন) এমন একটি শব্দ যা আমার বিকল্পের সাথে কাজ করে না?)।
জোনাথন অ্যালান

@ জোনাথন অ্যালানও সত্য নয়
রড

আহ, যথেষ্ট ন্যায্য, আমার বিশ্বাস মিথ্যা!
জোনাথন অ্যালান

2

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

lambda s:reduce(lambda r,c:r+'\n'[c in r:]+c,s)

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

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

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

r=''
for c in input():r+='\n'[c in r:]+c
print r

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


2

পার্ল, 30 বাইট

+1জন্য অন্তর্ভুক্তp

STDIN- এ নতুন লাইন অনুসরণ না করে ইনপুট দিন। আউটপুটটিও নতুন লাইনের পিছনে ছাড়াই:

echo -n adam | perl -pE 's%.%$v{$&}+++!pos?$&:$/.$&%eg'; echo

আপনি সামনের এবং পিছনের নতুন লাইন এই যত্নশীল না থাকে তাহলে 25( +3জন্য -pকারণ কোড রয়েছে ') ও কাজ করে:

#!/usr/bin/perl -p
s%%$/x!$v{$'&~v0}++%eg

সর্বদা হিসাবে দুর্দান্ত সমাধান! প্রদত্ত পরীক্ষার কেসের ভিত্তিতে, আপনার হ্যাশটির নাম দেওয়ার দরকার নেই, আপনি করতে পারেন ${$&}++। এটি এতটা শক্তিশালী নয়, তবে এই চ্যালেঞ্জের পক্ষে যথেষ্ট? এছাড়াও, মেটা নিয়ে একটি sensক্যমত্য হয়েছে যা perl -pঅতিরিক্ত বাইটের দরকার নেই, আপনাকে Perl with `-p` কেবল পার্লের পরিবর্তে শিরোনাম থাকা দরকার । আমি নিজেই তা মনে করার চেষ্টা করছি ...
ডম হেস্টিংস

@ ডোমহাস্টিংস প্রায় 95 টি সম্ভাব্য স্ট্রিংয়ের প্রায়শই হেনডোকডটি কার্যকরভাবে বোঝায় যে 1এটি কার্যকর, যে ক্ষেত্রে ক্ষেত্রে vপ্রয়োজন the গণনা সম্পর্কে, আমি বেশিরভাগ ক্ষেত্রে কোডগলফ.মেটা.স্ট্যাকেক্সেঞ্জাওএ /a / 7539/51507 অনুসরণ করি যা আমার কাছে পার্ল গণনা সম্পর্কে সবচেয়ে ধারাবাহিক মেটা পোস্ট।
টন হসপেল

সর্বদা মাস্টারের কাছ থেকে শিখে আনন্দিত। বিশেষত, এই ক্ষেত্রে &~v0প্রথম চরিত্রটি দখল করার জন্য। এই সাইটে যোগদান এবং আপনার দীর্ঘ দক্ষতা ভাগ করে নেওয়ার জন্য আপনাকে ধন্যবাদ।
এমএস 210

আপনি স্ট্রবেরি পার্ল, ব্যবহার করে যা ব্যবহার করতে পারেন "পরিবর্তে 'সঙ্গে -e, এবং তারপরে আপনি নির্ভর করতে পারেন -ep+ 1 বদলে +3 হিসাবে। (পরীক্ষিত।)
এমএস 210

2

জাভাস্ক্রিপ্ট, 61 54 52 বাইট

অক্ষরের অ্যারে হিসাবে ইনপুট নেয়।

s=>s.map(x=>a[x]?a[y]+=x:a[x]=a[++y]=x,a=[],y=-1)&&a

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

o.innerText=JSON.stringify((f=
s=>s.map(x=>a[x]?a[y]+=x:a[x]=a[++y]=x,a=[],y=-1)&&a
)([...i.value=""]));oninput=_=>o.innerText=JSON.stringify(f([...i.value]))
<input id=i><pre id=o></pre>


2

আর , 94 87 বাইট

function(s,n=nchar(s),g=substring)g(s,d<-which(!duplicated(g(s,1:n,1:n))),c(d[-1]-1,n))

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

সাবস্ট্রিংগুলির একটি (সম্ভবত খালি) তালিকা ফেরত দেয়।

মাইকেল এমকে 7 বাইট বাঁচানোর জন্য ধন্যবাদ!


3
function(s,n=nchar(s),g=substring)g(s,d<-which(!duplicated(g(s,1:n,1:n))),c(d[-1]-1,n))আরও খাটো হবে - এবং অবশ্যই কিছুটা কুরুচিপূর্ণ ...
মাইকেল এম

এর substringবদলে কেন substr?
প্লানাপাস

@ মিশেলএম খুব সুন্দর! আমাকে এখনও if(n)সেখানে যুক্ত করতে হবে কারণ substringখালি স্ট্রিং ইনপুটটির জন্য একটি ত্রুটি ছুঁড়েছে।
জিউসেপ

1
@ প্লানাপাস substrতার প্রথম ইনপুট সমান দৈর্ঘ্যের একটি ভেক্টরকে প্রদান করে যখন substringতার ইনপুটগুলির দীর্ঘতমের সমান দৈর্ঘ্যের এক ভাগ করে দেয়।
জিউসেপ

@ জিউস্পেপ: আর 3.4.3 তে "যদি (এন)" কে "ফাঁকা আউটপুট স্ট্রিং" "" তে ফাঁকা ইনপুট স্ট্রিং মানচিত্র করে, যা ঠিক (()) হওয়া উচিত
মাইকেল এম

2

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

ç↓‼►▐NVh

চালান এবং অনলাইন ডিবাগ

একই প্রোগ্রামটির আসকি উপস্থাপনাটি এটি।

c{[Ii=}(m

প্রতিটি চরিত্রের জন্য, এটি বিভক্ত হয় যখন বর্তমান অক্ষরের সূচক বর্তমান অবস্থান হয়।

c            copy the input
 {    }(     split the string when the result of the enclosed block is truthy
  [          duplicate the input string under the top of the stack
   I         get the character index of the current character
    i=       is it equal to the iteration index?
        m    print each substring

2

> <> , 22 17 14 বাইট

-1 বাইট ধন্যবাদ Emigna

i:::a$1g?!o1po

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

একটি শীর্ষস্থানীয় এবং পিছনে থাকা নতুন লাইন প্রিন্ট করে।

এটি pদ্বিতীয় সারির অনুরূপ স্থানে চরিত্রের অনুলিপি উচ্চারণ করে কোন অক্ষর ইতিমধ্যে উপস্থিত হয়েছে তা ট্র্যাক করে রাখে এবং সেই অবস্থান থেকে প্রাপ্ত মানটি 1 না হলে একটি নিউলাইন মুদ্রণ করে এটি মুদ্রণের চেষ্টা করলে একটি ত্রুটি শেষ হয়-1


দুর্দান্ত ব্যবহার g/p! 16 বাইট
এমিগিনা


1

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

s=>s.map(c=>o[c]?t+=c:(t&&m.push(t),t=o[c]=c),t='',o=m=[])&&[...m,t]

অক্ষরের তালিকা হিসাবে ইনপুট নেয়।

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


আমারও অনুরূপ সমাধান হয়েছিল এবং জিজ্ঞাসা করেছি [""]শেষ পরীক্ষা মামলার জন্য গ্রহণযোগ্য কিনা । তবে তা নয় । :-(
আর্নল্ড

ওহ, ভাল, আপনি যাইহোক, আরও অনেক ভাল সমাধান পেয়েছেন:)
রিক হিচকক

1

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

function SplitOnFirstUnique($s){
    $len = strlen($s); 
    $output = [];
    $newstring = '';
    for ($i=0; $i < $len ; $i++) { 
        $newstring = $newstring.$s[$i];
        if(!in_array($s[$i] , $output  )){
            $output[] = $newstring;
            $newstring = '';
        }
    }
    return $output;
}

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


2
হ্যালো, এবং পিপিসিজিতে আপনাকে স্বাগতম! আমি আপনার পোস্টটি আমাদের মানক বিন্যাসে সম্পাদনা করেছি এবং এটি চেষ্টা করে অনলাইনে একটি লিঙ্ক যুক্ত করেছি যাতে অন্যান্য লোকেরা আপনার কোড পরীক্ষা করতে পারে। কোড গল্ফের উদ্দেশ্যটি হ'ল সংক্ষিপ্ততম কোডটি লেখা, এবং আমি এই সংক্ষিপ্তটি তৈরির কয়েকটি উপায় দেখতে পাচ্ছি, যেমন সংক্ষিপ্ত পরিবর্তনশীল নামগুলি ব্যবহার করে এবং কিছু সাদা জায়গা রেখে। আরও কিছু ধারণার জন্য আপনি সাধারণ টিপস এবং পিএইচপি টিপস পৃষ্ঠা দেখতে পারেন।
গাছ নয়

1

লাল , 79 বাইট

func[s][foreach c next unique/case append s"^@"[print copy/part s s: find s c]]

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

Ungolfed:

f: func [s] [
    b: next unique/case append s "^@"  ; append `null` to the end of the string, than
                                       ; find the unique characters and 
                                       ; store all except the first to b  
    foreach c b [                      ; for each character in b
        print copy/part s s: find s c  ; print the part of the string to
                                       ; where the character is found and
                                       ; set the beginning of the string to that position
    ]
] 

1

এসএনওবিএল 4 (সিএসএনওবিএল 4) , 115 91 77 বাইট

	N =INPUT
S	N LEN(1) . Y	:F(END)
	S =S Y
	N SPAN(S) . OUTPUT REM . N	:(S)
END

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

নতুন লাইনের দ্বারা পৃথক করা সাবস্ট্রিংগুলি মুদ্রণ করে।

ব্যাখ্যা:

লাইন S(জন্য SPLIT) আসলে বিভক্ত হয় না, পরিবর্তে এর প্রথম অক্ষরটি বের করে Nএবং এতে ( .) সংরক্ষণ করে Y। উপর Failure, এটি জাম্প END। ম্যাচটি কেবল তখনই ব্যর্থ হয় যখন Nখালি স্ট্রিং থাকে। সুতরাং, যখন ইনপুটটি খালি থাকে, তখন এটি সরাসরি লাফ দেয় ENDএবং কিছুই আউটপুট করে না।

S = S Yযোগসূত্র Yসম্মুখের S

SPAN(S)সাগ্রহে বর্ণের একটি রান মিলে যায় S, এবং এটা পাঠায় ( .করা) OUTPUT(সেটিং .) Nথেকে REMএর aining অক্ষর N(যদি থেকে থাকে তাহলে)। তারপরে এটি পিছনে লাফ দেয় S


1

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

{$r=@();$h=@{};[char[]]$ARGS[0]|%{if(!($h[$_]++)){$r+=""};$r[-1]+=$_};$r}

ব্যবহার

PS> & {$r=@();$h=@{};[char[]]$ARGS[0]|%{if(!($h[$_]++)){$r+=""};$r[-1]+=$_};$r} "mississipi" | ConvertTo-Json -Compress
["m","i","ssissi","pi"]

আপনি কিছু বাইট সংরক্ষণ করতে পারেন - এটি অনলাইন চেষ্টা করুন!
mazzy

1

রুবি , 65 62 58 বাইট

->s,*a{s.size.times{|i|(i==s.index(c=s[i])?a:a[-1])<<c}
a}

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

একটি ল্যাম্বডা একটি স্ট্রিং গ্রহণ করে এবং একটি স্ট্রিংয়ের অ্যারে ফিরিয়ে দেয়।

পদ্ধতির: প্রতিটি সূচকের জন্য, হয় sফলাফলের অ্যারেতে এই সূচকের অক্ষরটি যুক্ত করুন , বা ফলাফল অ্যারের শেষ স্ট্রিংয়ে। String#indexআর্গুমেন্টের প্রথম উদাহরণের সূচকটি প্রদান করে।

-২ বাইট: aনিজস্ব লাইনের পরিবর্তে স্প্লট আর্গুমেন্ট হিসাবে শুরু করুন। ধন্যবাদ, মূল্য কালি !

-1 বাইট: ব্যবহার c=s[i]... cপরিবর্তে s[i]... s[i]ধন্যবাদ, মূল্য কালি !

-4 বাইট: .timesপরিবর্তে ব্যবহার করুন.map



1

জাভা 8, 193 169 155 151 বাইট

s->{for(int l=s.length(),i=0,j;i<l;i++)if(s.indexOf(s.charAt(i))==i){for(j=i;++j<l&&s.indexOf(s.charAt(j))!=j;);System.out.println(s.substring(i,j));}}

-১৪ বাইটস @ রজনগুলকে ধন্যবাদ (কোন কিছুর জন্য আমি নিজেকে কিছুটা মিস করেছি ..)
-৩ বাইট ধন্যবাদ @ ওউবালেন্সের জন্য (আবার কিছু স্পষ্টতই আমি নিজেকে মিস করেছি ..: এস)

ব্যাখ্যা:

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

s->{                    // Method with String parameter and no return-type
  for(int l=s.length(), //  The length of the input-String
          i=0,j;        //  Index integers
      i<l;i++)          //  Loop `i` from 0 to `l` (exclusive)
    if(s.indexOf(s.charAt(i))==i){
                        //   If the character at index `i` hasn't occurred yet:
      for(j=i;++j<l     //    Inner loop `j` from `i` to `l` (exclusive),
          &&s.indexOf(s.charAt(j))!=j;);
                        //     as long as the character at index `j` has already occurred
      System.out.println(//    Print:
        s.substring(i,j));}}
                        //     The substring of the input from index `i` to `j` (exclusive)

1
আমি আপনাকে মনে করি না if(l<1)। যদি lহয় 0লুপ মৃত্যুদন্ড কার্যকর করা উচিত নয় যাহাই হউক না কেন যেমন 0<0হয় false
রাজনগুল

@ রজনগুল কীভাবে আমি এটি মিস করেছি তা নিশ্চিত নই তবে আপনি সম্পূর্ণই সঠিক! ..
>>>

আপনি i=0দু'বার সেট করছেন । দ্বিতীয়টি বাদ দিয়ে আপনি 3 বাইট বাঁচাতে পারবেন:for(;i<l;i++)
ওওবালেন্স

@ ওউবালেন্স নিশ্চিত যে কীভাবে এটি ঘটেছে ..: এস তবে লক্ষ্য করার জন্য ধন্যবাদ! :)
কেভিন ক্রুইজসেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.