ลำดับตัวอักษรภาษาสเปนเก่า


22

ก่อนปี 1994, พจนานุกรมภาษาสเปนที่ใช้ตามลำดับตัวอักษรที่มีความไม่ชอบมาพากล : digraphs llและchได้รับการพิจารณาหากพวกเขาเป็นตัวอักษรเดียว chตามทันทีcและทันทีตามll lเพิ่มตัวอักษรñซึ่งตามมาnในภาษาสเปนคำสั่งนั้น:

a, b, c, ch, d, e, f, g, h, i, j, k, l, ll, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z

ตั้งแต่ปี 1994 llและchได้รับการพิจารณาเป็นกลุ่มของตัวอักษรสองตัว ( l, lและc, hตามลำดับ) ñและจึงตามลำดับตัวอักษรเป็นเช่นเดียวกับในภาษาอังกฤษมีข้อยกเว้นของตัวอักษร

คำสั่งเดิมแน่นอนมากขึ้นที่น่าสนใจ

ความท้าทาย

ป้อนรายการคำที่เป็นศูนย์หรือมากกว่าแล้วเอาท์พุทรายการที่เรียงลำดับตามลำดับตัวอักษรภาษาสเปนเก่า การเรียงลำดับอยู่ระหว่างคำ (ไม่ใช่ระหว่างตัวอักษรภายในคำ) นั่นคือคำที่เป็นอะตอมและผลลัพธ์จะมีคำเดียวกันในลำดับที่อาจแตกต่างกัน

เพื่อลดความซับซ้อนเราจะไม่พิจารณาตัวอักษรñหรือสระสำเนียงá, é, í, ó, úหรือตัวพิมพ์ใหญ่ตัวอักษร แต่ละคำจะเป็นลำดับของอักขระหนึ่งตัวหรือมากกว่าที่นำมาจากช่วงรวมจาก ASCII 97 ( a) ถึง ASCII 122 ( z)

หากมีมากกว่าสองlตัวอักษรในแถวพวกเขาควรจะจัดกลุ่มจากซ้ายไปขวา นั่นคือlllเป็นllแล้วl(ไม่ใช่lแล้วll)

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

ในทำนองเดียวกันผลลัพธ์จะเป็นรูปแบบที่สมเหตุสมผล (ไม่จำเป็นต้องเหมือนกับอินพุต)

รหัสกอล์ฟชนะที่สั้นที่สุด

กรณีทดสอบ

ในตัวอย่างต่อไปนี้คำจะถูกคั่นด้วยช่องว่าง บรรทัดแรกคืออินพุต, วินาทีคือเอาต์พุต:

llama coche luego cocina caldo callar calma
caldo calma callar cocina coche luego llama

cuchara cuchillo cubiertos cuco cueva
cubiertos cuco cuchara cuchillo cueva

"Words" สามารถเป็นตัวอักษรเดียวได้เช่นกัน:

b c a ch ll m l n
a b c ch l ll m n

หรือชุดค่าผสมที่ไม่น่าเป็นไปได้ (โปรดจำไว้ว่ากฎที่lจัดกลุ่มจากซ้ายไปขวา):

lll llc llz llll lllz
llc lll lllz llll llz

อินพุตว่างควรให้เอาต์พุตว่าง:



แน่นอนว่าคำสั่งนี้สามารถใช้กับภาษาอื่นได้เช่นกัน:

chiaro diventare cucchiaio
cucchiaio chiaro diventare

all alternative almond at ally a amber
a almond alternative all ally amber at

5
มันสายเกินไปที่จะแก้ไขคำถามตอนนี้เพราะมันมีคำตอบ แต่จริงๆแล้ว rr ก็เป็นตัวอักษรเดียวเช่นกัน ฉันเชื่อว่ามันสูญเสียสถานะเป็นตัวอักษรเดียวหลังจาก ll และ ch ดังนั้นคำอธิบายใน Wikipedia ก็ไม่ได้ผิดอะไรมากนัก
Peter Taylor

"tweo"? filler +
CalculatorFeline

3
@PeterTaylor สถาบันการศึกษาอย่างเป็นทางการ (RAE) ไม่ได้พิจารณาrrตัวอักษรเดียว ; อย่างน้อยก็ไม่ใช่ตั้งแต่ปี 1803 แต่เป็นความจริงที่เห็นได้ชัดว่ามันเป็นจดหมายฉบับเดียวในอเมริกา
Luis Mendo

1
ดูเหมือนว่าชาวฮังการีสมควรได้รับการท้าทายที่แยกต่างหากและยากมาก :-)
Luis Mendo

1
ตัวอักษรภาษาเวลช์มีจำนวนมากและน่าสนใจเนื่องจากพวกมันไม่อยู่ในลำดับตัวอักษร (ภาษาอังกฤษ) หรือรวมถึงตัวอักษรละตินทั้งหมด: a, b, c, ch, d, dd, e, f, ff, g, ng, h, i, j, l, ll, m, n, o, p, ph, r, rh, s, t, th, u, w, y
Algy Taylor

คำตอบ:


7

Pyth, 14 13 ไบต์

อัปเดต:เห็นว่าสิ่งนี้ได้รับการยอมรับและสังเกตว่าเป็นเรื่องไม่สำคัญ 1 ไบต์กอล์ฟ อ๊ะ

:D"ll|ch|."1Q

ลองออนไลน์ ชุดทดสอบ

สำหรับแต่ละคำที่พบการแข่งขันทั้งหมดไม่ทับซ้อนกันสำหรับ ll|ch|.regex คำนี้แยกคำว่า "ตัวอักษร" จากนั้นเพียงเรียงคำตามรายการที่แยก


วิธีการที่ยอดเยี่ยม! (ตอนนี้ฉันก็เข้าใจแล้ว) :-)
Luis Mendo

รหัสนั้นเป็นสิ่งที่น่าสนใจอย่างยิ่ง:D
Erik the Outgolfer

3

PowerShell, 46 44 51 50 ไบต์

$args|sort @{e={$_-replace'(?=ch|ll)(.).','$1Α'}}

Αตัวอักษรเป็นตัวอักษรกรีกอัลฟาซึ่งเกิดขึ้นหลังจากที่ตัวอักษรละตินทั้งหมดในการเรียงลำดับเริ่มต้นของ PowerShell (อย่างน้อยในเครื่องของฉันฉันไม่แน่ใจว่ามันแตกต่างกันในสถานที่อื่น ๆ ) มันนับเป็น 2 ไบต์ในการเข้ารหัส UTF8

ตัวอย่างการใช้งานสมมติว่าสตริงนี้ถูกบันทึกในไฟล์ชื่อes-sort.ps1:

> es-sort.ps1 'lzego' 'luego' 'llama'

luego
lzego
llama


1

Python 2, 128 116 ไบต์

lambda p:map(''.join,sorted([{'!':'ll','?':'ch'}.get(c,c)for c in w.replace('ll','!').replace('ch','?')]for w in p))

ฉันยังรู้สึกเหมือนมีที่ว่างสำหรับการปรับปรุงที่นี่



1

Perl, 40 ไบต์

รวม +1 สำหรับ -p

เรียกใช้ด้วยรายการคำบน STDIN:

perl -p spanisort.pl <<< "llama coche luego cocina caldo callar calma"

spanisort.pl

s/ll|ch|./\u$&/g;$_="\L@{[sort split]}"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.