แปลกออก: ตัวอักษร


11

วัตถุประสงค์

เขียนโปรแกรมหรือฟังก์ชั่น (หรือเทียบเท่า) ที่เรียงลำดับและส่งกลับตัวอักษรคี่ในเมทริกซ์ขนาดสุ่ม

รายละเอียด

คุณจะถูกส่งผ่านเมทริกซ์ (เป็นสตริง) เป็นอินพุตของมิติสุ่มเช่นนี้

bbbbbbbbbb
bbbbbdbbbb
bbbbbbbbbb
bbbbbbbbbb
bbbbbbbbbb

งานของคุณคือค้นหาตัวอักษรที่ไม่ตรงกับส่วนที่เหลือ (ในกรณีนี้คือdพบที่บรรทัด 2, col 6) และส่งคืนตัวอักษรนั้นเป็นเอาต์พุต เมทริกซ์จะประกอบด้วยตัวอักษรA-Z, a-z, บรรทัดใหม่ ( \nเฉพาะในปลายแถว) และมีขนาดตั้งแต่ 5x5 ไป 10x10 (25-100 ตัวอักษร)

ช่องโหว่มาตรฐานใช้ นี่คือความท้าทายของรหัสกอล์ฟ รายการที่มีรหัสอย่างน้อยไบต์จะชนะ

อินพุต

อินพุตจะถูกส่งผ่านผ่านอินพุตมาตรฐานเป็นสตริงหากเป็นโปรแกรมหรือเป็นอาร์กิวเมนต์ถ้าฟังก์ชัน (หรือคล้ายกัน)

เอาท์พุต

ตัวเดียวนั่นคือ "แปลก" ในเมทริกซ์หรือ None , nil, NULหรือสตริง"None"ถ้าไม่มี "แปลก" ตัวอักษร

ตัวอย่างเพิ่มเติม

aaaaaaa
aaaaaaa
aaaaaaa
AAAIAAA
aaaaaaa

ตอบ: I

vvqvvvvvvv
vvvvvvvvvv
vvvvvvvvvv
vvvvvvvvvv
vvvvvvvvvv

ตอบ: q

puuuuuuuu
uuuuuuuuu
uuuuuuuuu
uuuuuuuuu
uuuuuuuuu
uuuuuuuuu
uuuuuuuuu
uuuuuuuuu
uuuuuuuuu
uuuuuuuuu

ตอบ: p

เครื่องกำเนิดไฟฟ้า

นี่คือตัวสร้างเมทริกซ์แบบสุ่มที่เขียนด้วย Python ที่คุณสามารถใช้ทดสอบโปรแกรมของคุณ หมายเหตุ:มีโอกาสเล็กน้อยที่จะทำผิดพลาดและไม่ได้ใส่ตัวอักษรแปลก ๆ


1
นี่คือการแปลตัวอักษรของรหัส Python ของคุณเป็น JS
Arnauld

1
@juniorRubyist "การลบโบนัส" ไม่เหมือนกับ "การบังคับโบนัส" ด้วยการย้ายส่วนที่เป็นทางเลือกจนถึงข้อกำหนดของความท้าทายคุณได้ยกเลิกส่วนใหญ่ของคำตอบที่มีอยู่
Martin Ender

คำตอบ:



6

J , 12 10 7 ไบต์

-.}./.~

ลองออนไลน์!

    /.~        Group identical items together
  }.           Remove one item from each group
-.             Remove the rest from the input

รุ่น 10 ไบต์

-._1 1{\:~

hisss ...

       \:~        Sort down
  _1 1{           Take the last character (which is a newline) and the second one.
-.                Remove those from the input

2
@ FrownyFrog นี่เป็นวิธีที่ชาญฉลาดในการค้นหาตัวละครแปลก ๆ
Galen Ivanov

ไม่สามารถตัดสินใจได้ว่าฉันจะชอบอะไรดีกว่า: ตะขออันน่ารักนี้หรือมุกตลกของคุณ ...
Jonah

4

Brachylog , 8 4 ไบต์

oḅ∋≠

ลองออนไลน์!

คำอธิบาย

ฉันไม่เคยใช้ Brachylog มาก่อนดังนั้นนี่อาจไม่เหมาะสม

oḅ∋≠  Input is a string.
o     Sort the input.
 ḅ    Split it into blocks of equal elements.
  ∋   There is a block
   ≠  whose elements are all different.
      That block is the output.

การใช้งาน∋≠หลังจากนั้นเพื่อให้ได้ผลลัพธ์ของความยาว 1 นั้นฉลาดมาก แน่นอนคุณควรโพสต์ไว้ในBrachylog เคล็ดลับคำถาม
ทำให้เสียชีวิต

@ ขอบคุณขอบคุณฉันเพิ่มเคล็ดลับ
Zgarb

3

K (oK) , 7 6 ไบต์

วิธีการแก้

*<#:'=

ลองออนไลน์!

ตัวอย่าง:

*<#:'="vvqvvvvvvv\nvvvvvvvvvv\nvvvvvvvvvv\nvvvvvvvvvv\nvvvvvvvvvv"
"q"

คำอธิบาย:

พบวิธีที่สั้นกว่าเล็กน้อย: ประเมินจากขวาไปซ้าย:

*<#:'= / the solution
     = / group matching items together
  #:'  / count (#:) each (')
 <     / sort ascending
*      / take the first one

หมายเหตุ:

ในขณะที่ฉันคาดหวังว่าจะได้รับโบนัสด้านของการท้าทายนี้การแก้ปัญหานี้จะคืนอักขระบรรทัดใหม่\nหากไม่มีอักขระแปลก ๆ :

*<#:'="vvvvvvvvvv\nvvvvvvvvvv\nvvvvvvvvvv\nvvvvvvvvvv\nvvvvvvvvvv"
"\n"

3

Prolog (SWI)ขนาด 46 ไบต์

p(L):-select(X,L,Y),\+member(X,Y),writef([X]).

ลองออนไลน์!

หรือถ้าผลลัพธ์จริงที่เป็นมาตรฐานจากเคียวรี่โปรล็อกไม่เป็นไร:

Prolog (SWI) 48 ไบต์

Z*L:-select(X,L,Y),\+member(X,Y),char_code(Z,X).

ลองออนไลน์!

คำอธิบาย

Find the first element X in the input  
that when removed, results in output  
that does not contain X

then depending on the version above either:  
print X as a character  
or  
return X as an atom

3

C (gcc) , 93 92 90 66 62 ไบต์

ฟังก์ชั่นสั้นกว่ามาก

t;f(char*p){for(t=*p;*p;)t^*p++?putchar(*p^*--p?*p:t),*p=0:0;}

ลองออนไลน์!

รหัสทดสอบ

main()
{
    char s[99];
    for(;gets(s);)f(s);
}

เวอร์ชันเก่าเป็นโปรแกรม

C 86 ไบต์

char*p;s[9];main(t){for(;p=gets(s);)for(t=*p;*p;)t^*p++?putchar(*p^*--p?*p:t),*p=0:0;}

เอาต์พุตอักขระคี่หรือไม่มีอะไร ทำงานแบบนี้

C:\eng\golf>python matrix_gen.py | a.exe
X
C:\eng\golf>python matrix_gen.py | a.exe
G
C:\eng\golf>python matrix_gen.py | a.exe
x
C:\eng\golf>python matrix_gen.py | a.exe

C:\eng\golf>python matrix_gen.py | a.exe
J

ฉันไม่รู้ว่ามันค่อนข้างยุติธรรมที่จะใส่gets()ลงไปในโปรแกรมควบคุมการทดสอบเนื่องจากเป็นการฆ่าเชื้ออินพุตโดยการลบตัวอักษร \ n ให้คุณ กำลังทำงานเพื่อให้ฟังก์ชันของคุณไม่ทำงานกับอินพุตต้นฉบับ
Michael Dorgan

@MichaelDorgan มันทำงานกับอินพุต piped จากสคริปต์หลามเช่นเดียวกับการป้อนข้อมูลใน TIO คนอื่น ๆ ป้อนข้อมูลที่ยากซึ่งไม่ได้ดูด้วยจิตวิญญาณของความท้าทาย
cleblanc

3

05AB1E ,  4  2 ไบต์

บันทึก 2 ไบต์ต้องขอบคุณAdnan

.m

ลองออนไลน์!

คำอธิบาย

.m   # push a list of the least frequent character(s) in input

คุณต้องการนำบรรทัดใหม่ออกหรือไม่เนื่องจากเรารับประกันว่าข้อมูลจะมีความยาวอย่างน้อย 5 บรรทัดหรือไม่
Shaggy

@Shaggy: ไม่ฉันไม่ได้ทำ นั่นคือจัดการ2x2เมทริกซ์ ฉันพลาดส่วนนั้น5x5ไปแล้ว ขอบคุณ!
Emigna

มันจะต้องกลับมาnilถ้ามันไม่มี "คี่หนึ่งออกมา" ไม่ได้หรือ
Magic Octopus Urn

@MagicOctopusUrn ส่วนนั้นเป็นทางเลือกเมื่อคำตอบนี้ถูกโพสต์ ฉันเดาว่าการเปลี่ยนแปลงจะทำให้คำตอบส่วนใหญ่เป็นโมฆะในตอนนี้ ...
Martin Ender


2

Husk , 2 ไบต์

◄=

ลองออนไลน์!

นี่คือฟังก์ชั่นที่รับสตริงเป็นอินพุตและส่งคืนอักขระ มันใช้เวลาน้อยที่สุดของสตริงการป้อนข้อมูลเมื่อเปรียบเทียบตัวละครเพื่อความเท่าเทียมกัน (เช่นมันจะส่งกลับตัวละครที่มีจำนวนเท่ากับอักขระอื่น ๆ น้อยที่สุด)


2

C, 94 ไบต์

ส่งคืนโดยตัวชี้ \0ถ้าไม่มีผลตอบแทน

สิ่งนี้จะทำให้หน่วยความจำรั่ว สมมติว่าintเป็น 4 ไบต์

*t;f(c,p,i)char*c,*p;{t=calloc(64,8);for(*p=-1;*c;c++)t[*c]--;for(i=0;++i<128;)!~t[i]?*p=i:0;}

ลองออนไลน์!



@Shaggy ที่จริงแล้วฉันไม่รู้วิธีตีความกฎดังกล่าวเนื่องจากฉันเห็นผู้ใช้ (อื่น ๆ ) บางคนรู้เกี่ยวกับกฎนั้นอย่างชัดเจน แต่ยังคงโพสต์คำตอบเช่นนี้
user202729

2
@ user202729 เพียงเพราะคนอื่นทำไม่ได้หมายความว่าถูกต้อง) หากคุณเห็นวิธีแก้ปัญหาดังกล่าวดีที่สุดที่จะชี้ให้พวกเขาเห็น
Shaggy

@Shaggy ดีฉันชี้กฎอย่างชัดเจน แต่ผู้ใช้นั้นบอกว่า "กฎบอกอย่างชัดเจนว่ากฎนี้ใช้ได้" ฉันไม่รู้จะพูดอะไร | ในกรณีนี้ฟังก์ชั่นที่ต้องการอาเรย์tจะถูกทำให้เป็นศูนย์ก่อนที่จะเรียกแต่ละครั้งไม่ใช่ครั้งแรก
user202729

@Shaggy ขอบคุณคงที่
Colera Su


2

Bash , 15 20 ไบต์

fold -1|sort|uniq -u

ลองออนไลน์!

คำอธิบาย: foldอินพุตสำหรับ1อักขระต่อบรรทัดแบ่งsortเป็นกลุ่มของตัวอักษรที่ตรงกันจากนั้นพิมพ์เฉพาะบรรทัดที่unique

ขอบคุณ@Nahuel Fouilleul ที่จับและช่วยแก้ไขปัญหาด้วยวิธีนี้


ไม่ทำงานหากตัวละครแปลกเป็นตัวที่สองหรือ penuitlimate
Nahuel Fouilleul

@NahuelFouilleul ดีจับ ... ฉันไม่แน่ใจว่าจะแก้ไขได้อย่างไรในขณะนี้ แต่ฉันจะแก้ไขหรือลบในภายหลังเว้นแต่คุณจะมีการแก้ไขที่แนะนำ
Justin Mariner

สามารถแก้ไขได้อย่างง่ายดาย|sort|แต่อาจมีทางออกที่ดีกว่า
Nahuel Fouilleul

พบโซลูชันด้วย grep แต่ใช้เวลานานกว่าgrep -oP '^(.)((?=(?!\1).){2}|.*\K(?!\1).)'
Nahuel Fouilleul

@NahuelFouilleul ฉันจะsortแก้ไขด้วยขอบคุณ คุณสามารถโพสต์คำตอบ grep นั้นเป็นของคุณเองได้ตลอดเวลาถ้าคุณต้องการ
Justin Mariner



1

Matlab, 25 ไบต์

a=input('');a(a~=mode(a))

อินพุต "a" โดยที่ "a" ไม่ใช่โหมดของ "a" เอาต์พุตอาร์เรย์ว่างสำหรับไม่มีคี่บอล


1

Haskell, 33 * 0.75 = 24.75 ไบต์

f s=[c|[c]<-(`filter`s).(==)<$>s]

ส่งคืนรายการว่างถ้าไม่มีอักขระแปลก ๆ

ลองออนไลน์!

สำหรับอักขระแต่ละตัวcในเมทริกซ์ (กำหนดเป็นสตริงs) ให้สร้างสตริงของตัวอักษรทั้งหมดsที่มีค่าเท่ากับcและรักษาความยาว 1


1

JavaScript (ES6), 37 ไบต์

ส่งคืนnullถ้าไม่มีตัวอักษรแปลก ๆ

s=>s.match(`[^
${s.match(/(.)\1/)}]`)

กรณีทดสอบ


1

Japt , 6 ไบต์

รับอินพุตเป็นสตริงแบบหลายบรรทัดและส่งออกสตริงอักขระเดี่ยวหรือสตริงว่างถ้าไม่มีวิธีแก้ปัญหา

k@èX É

ลองมัน


คำอธิบาย

ลบอักขระที่คืนค่าความจริง ( k) เมื่อผ่านฟังก์ชัน ( @) ที่นับ ( è) การเกิดขึ้นขององค์ประกอบปัจจุบัน ( X) ในอินพุตและลบ 1 ( É)



1

เยลลี่ 4 ไบต์

ċ@ÐṂ

ลองออนไลน์!

Return \n(ขึ้นบรรทัดใหม่) ในกรณีที่ไม่มีอักขระแปลก ๆ เห็นได้ชัดว่า\nไม่ใช่ตัวอักษรที่พิมพ์ได้

โดยบังเอิญนี่เป็นอัลกอริธึมที่เหมือนกับคำตอบ Mr.Xcoder Python (ฉันมากับมันด้วยตนเอง)

คำอธิบาย:

  ÐṂ    Ṃinimum value by...
ċ@      ċount. (the `@` switch the left and right arguments of `ċ`)

นั่นใช้ได้เพราะในm×nเมทริกซ์:

  • ถ้ามีตัวอักษรแปลก ๆ : มีm-1การขึ้นบรรทัดใหม่ 1 ตัวอักษรแปลกและm×n-1ตัวอักษรปกติและเพราะ1 < m-1 < m×n-15 ≤ m, n ≤ 10
  • ถ้ามีไม่ได้อยู่ตัวอักษรแปลก ๆ : มีm-1การขึ้นบรรทัดใหม่และตัวอักษรปกติและm×nm-1 < m×n


1

C (gcc) , 91 86 82 79 71 ไบต์

f(char*s){for(;*++s==10?s+=2:0,*s;)if(*s^s[-1])return*s^s[1]?*s:s[-1];}

ลองออนไลน์!

  • ขอบคุณGastropnerสำหรับ xor และ? เคล็ดลับ (-3 ไบต์)
  • ทำใหม่ในเวอร์ชันเปรียบเทียบเพื่อแก้ไขข้อบกพร่องและใช้เวทย์มนตร์Gastropnerจากความคิดเห็น

คำอธิบาย:

เปรียบเทียบอักขระปัจจุบันและก่อนหน้าในขณะที่ข้ามบรรทัดใหม่ หากแตกต่างกันให้เปรียบเทียบกับถ่านต่อไป สิ่งนี้บอกเราว่าถ้าเราคืนถ่านปัจจุบันหรือถ่านก่อนหน้า ฟังก์ชั่นส่งกลับค่าถ่าน "คี่" ถ้ามันมีอยู่หรือ 0 ถ้าอาร์เรย์ไม่แปลก เราออกไปพร้อมกับการตรวจสอบถ่าน "ถัดไป" เพราะมีการขึ้นบรรทัดใหม่ต่อหน้า\0ถ่านอยู่เสมอ หากไม่มีถ่านคี่เราจะส่งกลับ \ 0 จากห่วงสำหรับ


เก่ากว่ารหัส xor ที่เซ็กซี่กว่าคำอธิบาย:

สร้าง xor mask ที่ทำงานอยู่ของค่าสตริง 3 ค่าถัดไป หากพวกเขาเหมือนกันทั้งหมดแล้วค่าจะเท่ากับหนึ่งในสาม หากพวกเขาแตกต่างจากนั้นทั้งสองที่เหมือนกันจะยกเลิกกันออกจากที่ไม่ซ้ำกัน

ต้องแยกตัวประกอบ / n ก่อน xor หรือทำให้ยุ่งเหยิง นอกจากนี้ยังต้องตรวจสอบความไม่เท่าเทียมกัน 2 ตัวอักษรในกรณีที่ s [0] เป็นค่าคี่ ค่าใช้จ่ายนี้เป็นพิเศษ | | ตรวจสอบ

v;f(char*s){while(s[3]){s[2]==10?s+=3:0;v=*s^s[1]^s[2];if(v^‌​*s++||v^*s)break;}}

79 ด้วยการปรับแต่งเล็กน้อย ผลตอบแทนจากการร่วงล้มไม่เห็นด้วยกับคอมไพเลอร์ของฉันดังนั้นทดสอบเฉพาะกับ TIO:v;f(char*s){while(s[3]){s[2]==10?s+=3:0;v=*s^s[1]^s[2];if(v^*s++||v^*s)break;}}
gastropner

สำหรับอึที่ฉันเขียน TIO เป็นสิ่งที่ฉันยึดติดอยู่ ขอบคุณ!
Michael Dorgan

การจัดเรียงนิพจน์บางอย่างอนุญาตให้อีก -2 สำหรับ 77: v;f(char*s){while(s[2]==10?s+=3:0,v=*s^s[1]^s[2],s[3])if(v^*s++||v^*s)break;} อย่างไรก็ตามม้าที่ชนะของคุณเป็นอีกอันหนึ่งถ้าคุณเล่นซอกับมันเล็กน้อยสำหรับ 73:v;f(char*s){for(v=-1;*++s==10?s+=2,v--:0,*s;v=0)if(*s^s[-1])return s[v];}
Gastropner

ใช่ แต่ xor ดูเซ็กซี่มาก :)
Michael Dorgan

แนะนำs+=*++s-10?0:2แทน*++s==10?s+=2:0
ceilingcat

1

อ็อกเท26 26ไบต์

บันทึก 1 ไบต์ขอบคุณ@Giuseppe

@(x)x(sum(x(:)==x(:)')<2)

ฟังก์ชั่นไม่ระบุชื่อที่ใช้อาร์เรย์ถ่าน 2D เป็นอินพุทและเอาท์พุทตัวอักษรแปลก ๆ หรือสตริงว่างถ้ามันไม่อยู่

ลองออนไลน์!


0

อลิซ 16 * 75% = 12 ไบต์

/-.nDo&
\i..*N@/

ลองออนไลน์!

เอาต์พุตJabberwockyหากไม่มีอักขระซ้ำกัน

คำอธิบาย

/...@
\.../

นี่เป็นเฟรมเวิร์กสำหรับโปรแกรมเชิงเส้นที่ทำงานทั้งหมดใน Ordinal (โหมดการประมวลผลสตริง) รหัสจริงจะถูกดำเนินการในลักษณะที่คดเคี้ยวไปมาและแผ่ออกไปที่:

i..DN&-o

i   Read all input.
..  Make two copies.
D   Deduplicate one copy, giving only the two letters and a linefeed.
N   Multiset difference. Removes one copy of each letter and one linefeed.
    Therefore it drops the unique letter.
&-  Fold substring removal over this new string. This essentially removes
    all copies of the repeated letter and all linefeeds from the input,
    leaving only the unique letter.
.   Duplicate.
n   Logical NOT. Turns empty strings into "Jabberwocky" and everything else
    into an empty string.
*   Concatenate to the previous result.
o   Print the unique letter or "Jabberwocky".

แทนที่จะใช้&-เราสามารถใช้ey(การทับศัพท์เป็นสตริงว่าง) อีกทางหนึ่งด้วยการใช้อักขระเพิ่มอีกหนึ่งตัวในการจัดการกับสแต็กเราสามารถลดการป้อนข้อมูลซ้ำซึ่งช่วยให้เราสามารถลบอักขระที่ไม่ต้องการด้วยNแต่ก็ยังนับไบต์เดียวกัน:

i.D.QXN.n*o@

อลิซ 13 ไบต์

/N.-D@
\i&.o/

ลองออนไลน์!

.n*นี่คือวิธีการแก้ปัญหาโดยไม่ต้องโบนัสมันก็หายไป



0

APL + WIN, 16 ไบต์

(1=+/a∘.=a)/a←,⎕

แสดงพร้อมต์สำหรับอินพุตหน้าจอและเอาต์พุตเป็นตัวอักษรคี่หรือไม่มีอะไรหากไม่มีตัวอักษรแปลก ๆ


a/⍨1=+/a∘.=a←,⎕สำหรับ byte
Uriel

@ Uriel ขอบคุณ แต่ฉันกลัวว่าโอเปอเรเตอร์⍨จะไม่สามารถใช้ได้ใน APL + รุ่นเก่าของฉันที่ชนะ 5 :(
Graham

0

PowerShellขนาด 39 ไบต์

([char[]]"$args"|group|sort c*)[0].Name

ลองออนไลน์!

รับอินพุตเป็นสตริงที่มีบรรทัดใหม่ (ตามที่ระบุในการท้าทาย) แปลงเป็นchar-array จากนั้นเราก็Group-Objectอักขระเพื่อให้ตัวละครจะถูกจัดกลุ่มเข้าด้วยกันโดยใช้ชื่อของพวกเขาจากนั้นsortขึ้นอยู่กับcจำนวน เพื่อให้แน่ใจว่าตัวละครเหงาเป็นครั้งแรกดังนั้นเราจึงใช้ดัชนีและเอาท์พุท[0].Name

หากบรรทัดใหม่ยอมรับได้สำหรับ "ไม่มีอะไร" คุณสมบัตินี้จะได้รับโบนัส


ฉันหวังว่าsort c*)[0]จะสั้นลง แต่สิ่งที่ฉันคิดไว้คือจำนวนไบต์เท่ากัน, ? c* -eq 1).
รูต

$argsจะสั้นลงโดยการเอาคำพูดสองรอบ นอกจากนี้ยังมีความแม่นยำมากกว่าที่จะทำ([char[]]$args|group|? c* -eq 1).Nameเช่นนั้นเพราะจะส่งคืนได้อย่างถูกต้องnullเมื่อไม่มีอักขระแปลก ๆ (แทนที่จะขึ้นบรรทัดใหม่) อย่างไรก็ตามในแง่ของจำนวนไบต์สิ่งนี้จะไม่ทำให้คุณต่ำกว่า 37
cogumel0

@ cogumel0 ไม่ทำงานหากไม่มีเครื่องหมายอัญประกาศ
root

@ รูทคุณถูกต้อง แต่จะผ่านหนึ่งของความต้องการ (A ตัวเดียวนั่นคือ "แปลก" ในเมทริกซ์หรือNone, nil, NULหรือสตริง"None"ถ้าไม่มี "แปลก" ตัวอักษร.) ก็จะยังคงมีการเปลี่ยนแปลง ขึ้นบรรทัดใหม่ไม่ใช่ส่วนหนึ่งของคำตอบที่ยอมรับได้
cogumel0

@ cogumel0 อ้าความท้าทายก็เปลี่ยนไปตั้งแต่ฉันโพสต์คำตอบ "ไม่มี / ไม่มี / อะไรก็ตาม" ที่เคยเป็นโบนัสแทนที่จะเป็นข้อบังคับ ฉันจะตอบคำถามตามที่เป็นอยู่
AdmBorkBork

0

Perl 6 ,  27  24 -25% = 18 ไบต์

*.comb.Bag.min(*.value).key

ทดสอบมัน

{%(.comb.Bag.invert){1}}

ทดสอบมัน

นี่จะ ส่งคืนค่าที่ไม่ได้กำหนดเมื่อกำหนดอินพุตที่ไม่มีอักขระคี่

ขยาย:

{  # bare block lambda with implicit parameter 「$_」

  %(        # coerce into a Hash

    .comb   # split the input into graphemes (implicit method call on 「$_」)
    .Bag    # turn into a weighted Set
    .invert # invert that (swap keys for values) returns a sequence

  ){ 1 }    # get the character that only occurs once
}


0

Java 8, 85 ไบต์

นี่คือแลมบ์ดาจากStringถึงString(เช่นFunction<String, String>) มันเป็นสำเนาของโซลูชันของ Lucaแต่ฉันได้แบ่งสตริงการเรียงลำดับเล็กน้อย

s->new String(s.chars().sorted().toArray(),0,s.length()).replaceAll("(.)\\1+|\\n","")

ลองออนไลน์

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