แยกมัน. แต่ไม่ใช่ทั้งหมด!


11

แรงบันดาลใจจากคำถาม StackOverflow นี้

การป้อนข้อมูล:

เราจะรับสามอินพุต:

  • อักขระตัวคั่นที่Dจะแยก
  • ตัวละครIระหว่างสองตัวที่เราไม่สนใจอักขระตัวคั่น (ฉันรู้ว่ามันฟังดูคลุมเครือ แต่ฉันจะอธิบายด้านล่าง)
  • สตริง S

เอาท์พุท:

รายการ / อาร์เรย์ที่มีสตริงย่อยหลังจากการแยก

ตัวอย่าง:

Input:
D = ','
I = '"'
S = '11020199,"Abc ",aduz,,444,bieb,dc,2 ,2222.00,whatever 5dc,222.22,22.00,"98,00","12,000,000",21-09-2018, 06:00,",-,"'

Output:
['11020199', 'Abc ', 'aduz', '', '444', 'bieb', 'dc', '2 ', '2222.00', 'whatever 5dc', '222.22', '22.00', '98,00', '12,000,000', '21-09-2018', ' 06:00', ',-,']

ทำไม? แยกบนจุลภาคตามปกติจะยังแยก98,00, 12,000,000และ,-,ในสอง / สามชิ้น แต่เนื่องจากพวกมันอยู่ในIตัวอักขระอินพุตเราจึงเพิกเฉยไม่สนใจแยกที่นี่

กฏท้าทาย:

  • คุณสามารถสมมติว่าจะมีจำนวนIอักขระในอินพุต - สตริงเสมอ
  • คุณสามารถสันนิษฐานได้ว่าตัวละครIจะมีตัวอักษรตัวDถัดไปอยู่เสมอ(ยกเว้นเมื่อตัวอักษรตัวแรกหรือตัวสุดท้ายของอินพุต) ซึ่งยังสามารถแยกได้อย่างถูกต้อง ดังนั้นคุณจะไม่ได้มีสิ่งที่ชอบหรืออะไรเช่นนี้D = ','; I = '"'; S = 'a,b"c,d"e,f'D=','; I='"'; S='a",b,"c'
  • อินพุตสายSอาจมีไม่มีการอย่างใดอย่างหนึ่งหรือD Iหากไม่มีหมายเลขDเราจะแสดงรายการที่มีทั้งสายเข้าเป็นรายการเท่านั้น
  • รายการที่ส่งออกจะได้มีตัวละครIอีกต่อไปแม้ในขณะที่มันมีไม่มีD(ตามที่คุณสามารถดูที่"Abc "กลายเป็น'Abc 'ในตัวอย่างข้างต้น)
  • เป็นไปได้ว่าย่อยภายในมีเพียงI Dตัวอย่างเช่นจะส่งผลให้D = ','; I = '"'; S = 'a,",",b,"c","d,e,,",f'['a', ',', 'b', 'c', 'd,e,,', 'f']
  • คุณสามารถสันนิษฐานได้ว่าDจะไม่มีวันเริ่มต้นหรือสิ้นสุดSดังนั้นคุณจะไม่ต้องจัดการกับรายการว่าง / นำหน้า
  • เมื่ออินพุตมีสองรายการติดกันDเราจะมีรายการว่าง คือจะส่งผลให้D = ','; I = '"'; S = 'a,"b,c",d,,e,"",f'['a', 'b,c', 'd', '', 'e', '', 'f']
  • คุณสามารถสมมติว่าอินพุตและเอาต์พุตจะมีเฉพาะ ASCII ที่พิมพ์ได้ในช่วง[32, 126](ดังนั้นไม่รวมแท็บและการขึ้นบรรทัดใหม่)
  • นอกจากนี้คุณยังได้รับอนุญาตให้ส่งออกรายการทั้งหมดที่มีการคั่นด้วยบรรทัดใหม่แทนที่จะส่งกลับ / ส่งออกรายการ / อาร์เรย์ (โดยเฉพาะอย่างยิ่งสำหรับภาษาที่ไม่มีรายการ / อาร์เรย์; เช่น Retina)
  • คุณได้รับอนุญาตให้ส่งออกรายการในลำดับที่กลับรายการหากบันทึกเป็นไบต์ คุณจะไม่ได้รับอนุญาตให้ส่งออกตามลำดับหรือ 'สับ' ดังนั้นD = ','; I = 'n'; S = 'a,2,b,3,c'สามารถส่งออกเป็น[a,2,b,3,c]หรือ[c,3,b,2,a]แต่ไม่เป็น[2,3,a,b,c,]หรือ[a,3,b,c,2]ยกตัวอย่างเช่น

กฎทั่วไป:

  • นี่คือดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ
    อย่าปล่อยให้ภาษารหัสกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ '
  • กฎมาตรฐานจะใช้สำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชัน / เมธอดพร้อมพารามิเตอร์ที่เหมาะสมและชนิดผลตอบแทนโปรแกรมเต็มรูปแบบ การโทรของคุณ
  • ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
  • หากเป็นไปได้โปรดเพิ่มลิงก์พร้อมทดสอบรหัสของคุณ (เช่นTIO )
  • นอกจากนี้ขอแนะนำให้เพิ่มคำอธิบายสำหรับคำตอบของคุณ

กรณีทดสอบ:

Input:
D = ','; I = '"'; S = 'a,"b,c",d,,e,"",f'
Output:
['a', 'b,c', 'd', '', 'e', '', 'f']

Input:
D = ','; I = '"'; S = '11020199,"Abc ",aduz,,444,bieb,dc,2 ,2222.00,whatever 5dc,222.22,22.00,"98,00","12,000,000",21-09-2018, 06:00,",-,"'
Output:
['11020199', 'Abc ', 'aduz', '', '444', 'bieb', 'dc', '2 ', '2222.00', 'whatever 5dc', '222.22', '22.00', '98,00', '12,000,000', '21-09-2018', ' 06:00', ',-,']

Input:
D = ' '; I = ','; S = 'this is a test , to see if you understand it, or not , hmmm, I think I have too many commas , or not , perhaps..'
Output:
['this', 'is', 'a', 'test', ' to see if you understand it', 'or', 'not', ' hmmm', 'I', 'think', 'I', 'have', 'too', 'many', 'commas', ' or not ', 'perhaps..']

Input:
D = 'x'; I = 'y'; S = 'contains no lowercase X nor Y'
Output:
['contains no lowercase X nor Y']

Input:
D = '1'; I = '3'; S = '3589841973169139975105820974944592078316406286208948254211370679314'
Output: ['58984197', '69', '9975105820974944592078', '64062862089482542', '', '70679', '4']

Input:
D = ' '; I = 'S'; S = 'regular split on spaces'
Output:
['regular', 'split', 'on', 'spaces']

คำตอบปัจจุบัน (หรือทั้งหมด?) ส่วนใหญ่ไม่มีรายการว่างเปล่าที่จุดเริ่มต้นและจุดสิ้นสุดของกรณีทดสอบ 6. นี่เป็นกรณีพิเศษหรือเป็นข้อผิดพลาดในการทดสอบหรือไม่? ( "", "'ll remove all ", "")
TFeld

@TFeld มันเป็นกรณีพิเศษ คำตอบเกือบทั้งหมดล้มเหลวเพราะD = ','; I = '"'; S = ',"a,b",c,,d,""'ฉันเพิ่งสังเกตเห็น ฉันจะแก้ไขข้อท้าทายเล็กน้อยเพื่อให้รายการที่ว่างเปล่าไม่สามารถทำได้ในตอนเริ่มต้นและสิ้นสุด จากประสบการณ์ทั้งใน Java และ 05AB1E ในอดีตฉันรู้ว่าการทำลายไอเท็มเปล่าหลังจากการแยกสามารถแก้ไขได้ด้วยตนเองเมื่อภาษาเริ่มต้นไม่ถูกต้อง กรณีทดสอบเช่นนี้ควรได้รับการสนับสนุน: D = ','; I = '"'; S = 'a,"b,c",d,,e['a', 'b,c', 'd', '', 'e']โดยมีรายการที่ว่างอยู่ระหว่างนั้น
Kevin Cruijssen

จำเป็นหรือไม่ที่เอาต์พุตสุดท้ายจะรักษาลำดับของอินพุตหรือไม่? เช่น'1,"2,3"' -> ['2,3','1']
Kamil Drakari

1
@ KamilDrakari อืมฉันจะเพิ่มกฎเพื่ออนุญาตทั้งด้านหน้าและด้านหลัง แต่ไม่สับ ดังนั้น[a,b,c]และ[c,b,a]ได้รับอนุญาตเอาท์พุท แต่ตัวอย่างเช่น[a,c,b]หรือ[b,a,c]ไม่
Kevin Cruijssen

สิ่งที่ควรเป็นผลมาจากD=','; I='"'; S='a",b,"c'หรือเป็นแม้กระทั่งการป้อนข้อมูลที่ถูกต้อง?
Zgarb

คำตอบ:


3

Japt , 16 ไบต์

qV mÏu ?X:XrWRÃq

ลองมัน!

โดยพื้นฐานแล้วกลยุทธ์เดียวกับคำตอบ Pip ที่ใหม่กว่าของ DLosc ตั้งค่าส่วน "ที่ยกมา" แล้วแทนที่ตัวคั่นด้วยการขึ้นบรรทัดใหม่ในส่วนที่เหลือของสตริงส่งผลให้มีการคั่นด้วยการขึ้นบรรทัดใหม่

คำอธิบายแบบเต็ม:

qV                  Split on I
   m          Ã     For each segment:
    Ïu ?              If the segment has an odd index (quoted)...
        X             Keep it as-is
         :          Otherwise:
          XrWR        Replace each D in the segment with a newline
               q    Join it all to a single string

โปรดทราบว่าแม้ว่ารายการแรกจะถูกยกมามันจะยังคงอยู่ที่ดัชนี 1 ไม่ใช่ดัชนี 0 หากqพบตัวคั่นเป็นอักขระตัวแรกมันจะทำให้รายการแรกในการแยก (ดัชนี 0) เป็นสตริงว่างดังนั้นเนื้อหา ของคำพูดถูกต้องกลายเป็นรายการที่สอง (ดัชนี 1) นี่คือตัวอย่างของการจัดการกับคำพูดที่ถูกต้อง


ฉันเพิ่งบันทึกบางไบต์ด้วยการแทนที่ D ด้วยการขึ้นบรรทัดใหม่นอกเครื่องหมายคำพูดและการแยกในการขึ้นบรรทัดใหม่ดังนั้นจึงไม่จำเป็นต้องแทนที่ newline ด้วย D ในตอนท้าย รหัสของคุณสั้นลงไหม
DLosc

@DLosc แน่นอนขอบคุณสำหรับคำแนะนำ! วางในเวอร์ชันใหม่แล้ว
Kamil Drakari

8

R , 34 ไบต์

ปกติไม่แปรscanกับข้อโต้แย้งที่เหมาะสมสำหรับtext, sepและquoteควรจะทำมัน

function(D,I,S)scan(,t=S,"",,,D,I)

ลองออนไลน์!


2
ตามปกติ R เป็นผู้นำในการแยกความท้าทาย
ngm

2
พูดเกี่ยวกับภาษาที่เหมาะสมสำหรับงาน :) ยืนยันกรณีทดสอบสองสามข้อแล้วพวกเขาดูเหมือนจะใช้ได้ดีดังนั้น +1 จากฉัน PS: การป้อนข้อมูลโดยเก็บไว้ในตัวแปรไม่ได้รับอนุญาตตามเมตาดาต้า
Kevin Cruijssen

1
@KevinCruijssen ฉันสามารถส่งได้scan4 ไบต์แล้วเรียกมันพร้อมกับข้อโต้แย้งในสถานที่ที่เหมาะสม?
J.Doe

1
@ J.Doe Umm .. ฉันไม่รู้แล้ว ไม่คุ้นเคยกับรูปแบบอินพุตที่ยอมรับได้สำหรับR tbh เท่าที่ฉันรู้การใช้โปรแกรมเต็มรูปแบบกับข้อโต้แย้งของโปรแกรมหรือ STDIN เช่นเดียวกับฟังก์ชั่น (แลมบ์ดา) กับพารามิเตอร์ที่เหมาะสมหรือยังใช้ STDIN เป็นที่ยอมรับโดยค่าเริ่มต้น ในการโพสต์เมตาที่ฉันเชื่อมโยงก่อนหน้านี้ทุกรูปแบบการป้อนข้อมูลที่ถูกต้อง (พร้อมคะแนนบวก) จะกล่าวถึง วิธีนี้ใช้ได้กับRฉันไม่รู้
Kevin Cruijssen

@ J.Doe ส่งของคุณในขณะนี้เป็นโปรแกรมเต็มรูปแบบและในขณะนี้ไม่ได้รับการป้อนข้อมูลจาก stdin ทางออกที่สั้นที่สุดก็คือห่อมันเข้าไปในฟังก์ชั่น
Giuseppe

7

C (gcc) , 64 ไบต์

c;f(d,i,s)char*s;{for(;*s;s++)*s==i?c=!c:putchar(d-*s|c?*s:10);}

ลองออนไลน์!

JavaScript (Node.js) , 57 ไบต์

(d,i,s)=>s.replace(c=/./g,e=>i==e?(c^=1,''):d!=e|c?e:`
`)

ลองออนไลน์!


1
คำตอบ C ของคุณใช้งานได้ดี แต่คำตอบ JS ของคุณดูเหมือนจะยังคงอยู่DภายในIและมีIอยู่ในเอาต์พุตซึ่งสามารถเห็นได้ในกรณีทดสอบแรกในลิงก์ TIO ของคุณ (PS: มันอาจจะดีกว่าที่จะโพสต์พวกเขาเป็นคำตอบที่แยกออกมาพร้อมกับลิงค์ที่ระบุว่าเป็นพอร์ตของคำตอบ C ของคุณ)
Kevin Cruijssen

1
@KevinCruijssen แก้ไขแล้ว ฉันมักจะโพสต์คำตอบที่คล้ายกันด้วยกันและบอกว่ามันเป็นพอร์ตถ้ามันมาจากการทำงานของคนอื่น
l4m2


4

Pip , 18 ไบต์

FxcxQb?!:oOo?xRanx

รับอินพุตเป็นอาร์กิวเมนต์บรรทัดคำสั่ง ลองออนไลน์!

วิธีการที่แตกต่างกันโดยสิ้นเชิง: ประมวลผลสตริงหนึ่งตัวอักษรในเวลาเดียวกันและส่งออกผลลัพธ์ที่ต้องการขึ้นบรรทัดใหม่

อย่างไร?

                    a,b,c are cmdline args (respectively representing D,I,S); o is 1;
                    n is newline (implicit)
                    We use o for a flag indicating whether or not to change D into newline
Fxc                 For each character x in c:
   xQb?              If x equals b (the ignore character),
       !:o            Logically negate o in-place
          O          Else, output the following (with no trailing newline):
           o?         If o is truthy,
             xRan      x, with a (the delimiter) replaced with newline
                 x    Else, x unchanged

4

MATL 24 ไบต์

y=Yso~yi=*~*cO10Zt2G[]Zt

ปัจจัยการผลิตที่มีS, ,ID

ลองออนไลน์! หรือตรวจสอบกรณีทดสอบทั้งหมด

มันทำงานอย่างไร

พิจารณาปัจจัยการผลิตD = ','; I = '"'; S = 'a,"b,c",d,,e,"",f'.

y     % Implicit inputs: S, I. Duplicate from below
      % STACK: 'a,"b,c",d,,e,"",f', '"', 'a,"b,c",d,,e,"",f'
=     % Is equal? Element-wise
      % STACK: 'a,"b,c",d,,e,"",f', [0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0]
Ys    % Cumulative sum
      % STACK: 'a,"b,c",d,,e,"",f', [0 0 1 1 1 1 2 2 2 2 2 2 2 3 4 4 4]
o~    % Parity, negate
      % STACK: 'a,"b,c",d,,e,"",f', [1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1]
y     % Duplicate from below
      % STACK: 'a,"b,c",d,,e,"",f', [1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1], 'a,"b,c",d,,e,"",f'
i=    % Input: D. Is equal? Element-wise
      % STACK: 'a,"b,c",d,,e,"",f', [1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1], [0 1 0 0 1 0 0 1 0 1 1 0 1 0 0 1 0]
*~    % Multiply, negate (equivalent to NAND). Element-wise
      % STACK: 'a,"b,c",d,,e,"",f', [1 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1]
*     % Multiply, element-wise. Characters are converted to ASCII code
      % STACK: [97 0 34 98 44 99 34 0 100 0 0 101 0 34 34 0 102]
c     % Convert to char (character 0 is shown here as '·')
      % STACK: 'a·"b,c"·d··e·""·f'
O10   % Push 0 and then 10
      % STACK: 'a·"b,c"·d··e·""·f', 0, 10
Zt    % Replace character 0 by character 10 (newline; shown here as '¶')
      % STACK: 'a¶"b,c"¶d¶¶e¶""¶f'
2G[]  % Push second input (I) and then [] (empty array)
      % STACK: 'a¶"b,c"¶d¶¶e¶""¶f', '"', []
Zt    % Replace character given by input I by empty; that is, remove it. Implicit display
      % STACK: 'a¶b,c¶d¶¶e¶¶f'

3

เรติน่า 45 ไบต์

L$`(?=.*¶(.)¶(.))(\2(.*?)\2|(.*?))(\1|¶)
$4$5

ลองออนไลน์! คำอธิบาย:

(?=.*¶(.)¶(.))(\2(.*?)\2|(.*?))(\1|¶)

มองไปข้างหน้าเพื่อค้นหาค่าของ DและIบนสองบรรทัดต่อไปนี้ จากนั้นถ้าเราเจอIแล้วก็กินมันและจับคู่ตัวละครกับตัวถัดไปIและDมิฉะนั้นก็จับคู่ตัวละครกับตัวถัดไปDหรือตอนท้ายของบรรทัด

L$`
$4$5

รายการจับ 4 และ 5 จากการแข่งขันแต่ละครั้ง 4 คือการจับภาพระหว่างสองIs ในขณะที่ 5 คือการจับภาพระหว่างสองDs


3

Powershell, 71 ไบต์

param($d,$i,$s)$s-split{(1-($script:a+=$i-ceq$_)%2)*($d-ceq$_)}|% *m $i

สคริปต์ทดสอบที่ตีกอล์ฟน้อยกว่า:

$f = {

param($d,$i,$s)
$s-split{
    $script:a+=$i-ceq$_
    (1-$a%2)-and($d-ceq$_)
}|% Trim $i

}

@(
    ,(',','"',
    '',
    '')

    ,(',','"',
    'a,"b,c",d,,e,"",f',
    'a', 'b,c', 'd', '', 'e', '', 'f')

    ,(',','"',
    '11020199,"Abc ",aduz,,444,bieb,dc,2 ,2222.00,whatever 5dc,222.22,22.00,"98,00","12,000,000",21-09-2018, 06:00,",-,"',
    '11020199', 'Abc ', 'aduz', '', '444', 'bieb', 'dc', '2 ', '2222.00', 'whatever 5dc', '222.22', '22.00', '98,00', '12,000,000', '21-09-2018', ' 06:00', ',-,')

    ,(' ',',',
    'this is a test , to see if you understand it, or not , hmmm, I think I have too many commas , or not , perhaps..',
    'this', 'is', 'a', 'test', ' to see if you understand it', 'or', 'not', ' hmmm', 'I', 'think', 'I', 'have', 'too', 'many', 'commas', ' or not ', 'perhaps..')

    ,('x','y',
    'contains no lowercase X nor Y',
    'contains no lowercase X nor Y')

    ,('1','3',
    '3589841973169139975105820974944592078316406286208948254211370679314',
    '58984197', '69', '9975105820974944592078', '64062862089482542', '', '70679', '4')

    ,(' ','S',
    'regular split on spaces',
    'regular', 'split', 'on', 'spaces')

) | % {
    $d,$i,$s,$expected = $_
    $result = &$f $d $i $s
    "$("$result"-eq"$expected"): $result"
}

เอาท์พุท:

True:
True: a b,c d  e  f
True: 11020199 Abc  aduz  444 bieb dc 2  2222.00 whatever 5dc 222.22 22.00 98,00 12,000,000 21-09-2018  06:00 ,-,
True: this is a test  to see if you understand it or not  hmmm I think I have too many commas  or not  perhaps..
True: contains no lowercase X nor Y
True: 58984197 69 9975105820974944592078 64062862089482542  70679 4
True: regular split on spaces

คำอธิบาย:

  • บล็อกสคริปต์ใน-split{...}กฎระบุสำหรับการใช้ตัวคั่น ดูabout_split about_split
  • $script:a=...กำหนดตัวแปรaในนอกขอบเขต
  • -ceqหมายถึงสมการเป็นกรณี ๆ ไป
  • |% trim $iเรียกวิธีการtrim$iที่มีการโต้แย้ง

2

SNOBOL4 (CSNOBOL4) , 109 ไบต์

	D =INPUT
	I =INPUT
	S =INPUT
S	S (I ARB . OUTPUT I | ARB . OUTPUT) (D | RPOS(0)) REM . S	DIFFER(S)	:S(S)
END

ลองออนไลน์!

สมมติว่าและD =',' I ='"'จากนั้นรูปแบบจะ(I ARB . OUTPUT I | ARB . OUTPUT) (D | RPOS(0))จับคู่สตริงที่มีลักษณะเหมือน".*"หรือ.*ตามด้วย,หรือในตอนท้ายของสตริงและ OUTPUTs อักขระ arbitrary ( .*) ตั้งค่า REMainder ที่ไม่ตรงกันSและวนซ้ำตราบเท่าที่Sไม่ว่างเปล่า


2

Pip -n , 29 24 ไบต์

cR Xa[na]@(bN{$`})^n||:b

รับอินพุตเป็นอาร์กิวเมนต์บรรทัดคำสั่ง ลองออนไลน์!

กลยุทธ์: Iคู่ภายนอกแทนที่Dด้วยขึ้นบรรทัดใหม่ (เนื่องจากเรารับประกันได้ว่าบรรทัดใหม่จะไม่ปรากฏในสตริง) Iจากนั้นแยกขึ้นบรรทัดใหม่และแถบ


2

เยลลี่ ,  20  18 ไบต์

;`j⁵œṣ⁴œṣḊṖYʋ€Ðo³Y

โปรแกรมการเต็มรูปแบบสามข้อโต้แย้งD, I, Sที่พิมพ์แต่ละรายการในบรรทัด

ลองออนไลน์!(ส่วนท้ายรวมกับบรรทัดใหม่)

อย่างไร?

ล้อมรอบด้วยความพิเศษDในแต่ละด้านแยกที่Is แยกรายการคี่ดัชนีที่Ds จากนั้นเอาหัวและก้อยของพวกเขาและเข้าร่วมพวกเขาด้วยการขึ้นบรรทัดใหม่ในที่สุดก็เข้าร่วมผลกับการขึ้นบรรทัดใหม่


1
ฉันคิดว่าผลลัพธ์ของรายการ(ตรงข้ามกับการส่งคืนรายการ) จำเป็นต้องถูกคั่นด้วยวิธีใดวิธีหนึ่งเพื่อให้คุณสามารถบอกได้ 1) ว่าเป็นรายการเลยและ 2) เมื่อรายการหนึ่งจบลงและอีกรายการหนึ่งเริ่มต้นขึ้น (ฉันไม่มีเมตาโพสต์ที่เฉพาะเจาะจงเพื่อสำรองข้อมูล แต่มีความเกี่ยวข้องบางอย่างกับการสนทนาเกี่ยวกับพฤติกรรมที่ไม่สามารถสังเกตเห็นได้ในขณะนี้มันไม่สามารถสังเกตได้ว่าโปรแกรมของคุณแสดงรายการแทนที่จะพูดเป็นสตริง )
DLosc

ดังนั้นฉันเดาว่าฉันสามารถแทนที่การขันด้วยการเข้าร่วมโดยการขึ้นบรรทัดใหม่ (ซึ่งจะส่งคืนรายการของตัวละครที่ผสมกับตัวละคร แต่โปรแกรมเต็มจะพิมพ์รายการในบรรทัดใหม่)
Jonathan Allan

... ดังนั้น 17 ด้วย;`j⁵œṣ⁴œṣḊṖɗ€Ðo³Y
Jonathan Allan

@JonathanAllan 20 ไบต์ผลงานการแก้ปัญหาของคุณตามที่ตั้งใจไว้ แต่ 17 byter ของคุณในความคิดเห็นที่ดูเหมือนว่าจะให้ผลที่ไม่ถูกต้อง
Kevin Cruijssen

1
@KevinCruijssen - อืมกอล์ฟมือถือไม่ดีฉันพลาดการเข้าร่วมโดยการขึ้นบรรทัดใหม่สำหรับรายการที่มีการทำดัชนีแปลก ๆ 18 โพสต์
Jonathan Allan

2

PHP , 50 ไบต์

function q($D,$I,$S){return str_getcsv($S,$D,$I);}

ลองออนไลน์! ใช้ฟังก์ชั่นในตัว

หากการจัดเรียงปัจจัยการผลิตที่ได้รับอนุญาต ( (S,D,I)เพื่อให้ตรงกับstr_getcsvลายเซ็น) ผมมีรุ่น 44 ไบต์


1
ฉันเชื่อว่าอนุญาตให้ป้อนข้อมูลใหม่ได้ตราบใดที่คุณระบุคำสั่งซื้อ ที่จะทำให้มันชัดเจนคุณสามารถใช้ตัวแปร$S, $Dและ$Iมีค่าใช้จ่ายของ 0 ไบต์สำหรับนี้ 50 ไบต์รุ่นยาว
Ismael Miguel

นอกจากนี้ 50 ไบต์รุ่นด้วย$S, $D, $Iตัวแปรที่สามารถใช้เป็นคู่มือสำหรับการสั่งซื้อของการขัดแย้งที่
Ismael Miguel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.