पुराना स्पेनिश वर्णमाला क्रम


22

1994 से पहले, स्पैनिश शब्दकोशों ने वर्णानुक्रम का उपयोग एक ख़ासियत के साथ किया था : डिग्राफ 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

"शब्द" एकल अक्षर भी हो सकते हैं:

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
अब प्रश्न को सही करने के लिए बहुत देर हो चुकी है, क्योंकि इसका एक उत्तर है, लेकिन वास्तव में आरआर एक एकल पत्र भी था। मेरा मानना ​​है कि यह ll और ch की तुलना में बाद में एकल पत्र के रूप में अपनी स्थिति खो चुका है, इसलिए विकिपीडिया में स्पष्टीकरण आंशिक रूप से इतना गलत नहीं है।
पीटर टेलर


3
@PeterTaylor आधिकारिक अकादमी (RAE) ने rrएक भी पत्र पर विचार नहीं किया ; कम से कम 1803 के बाद से नहीं। लेकिन यह सच है कि जाहिरा तौर पर यह अमेरिका में एक ही पत्र माना जाता था
लुइस मेंडो

1
ऐसा लगता है कि हंगेरियन एक अलग, और अधिक कठिन चुनौती के हकदार हैं :-)
लुइस मेंडो

1
वेल्श वर्णमाला में उनके भार हैं, और संभवतः वे दिलचस्प हैं क्योंकि वे (अंग्रेजी) वर्णमाला के क्रम में नहीं हैं, या सभी लैटिन वर्णों में शामिल हैं: ए, बी, सी, च, डी, डीडी, ई, एफ, एफएफ, जी, एनजी, एच, आई, जे, एल, एल, एम, एन, ओ, पी, पीएच, आर, आर, एस, टी, थ, यू, डब्ल्यू, वाई
एलगी टेलर

जवाबों:


7

पायथ, 14 13 बाइट्स

अपडेट: यह देखा गया यह स्वीकार कर लिया गया है और एक तुच्छ 1 बाइट गोल्फ देखा गया है। ओह।

:D"ll|ch|."1Q

इसे ऑनलाइन आज़माएं। परीक्षण सूट।

प्रत्येक शब्द के लिए, रेगेक्स के लिए सभी गैर-अतिव्यापी मिलान खोजें ll|ch|.। यह शब्द को "अक्षरों" में विभाजित करता है। फिर, छींटे सूचियों द्वारा शब्दों को क्रमबद्ध करें।


महान दृष्टिकोण! (अब है कि मैं अंत में इसे समझ) :-)
लुइस मेंडो

यह कोड बिल्कुल आकर्षक है:D
एरिक आउटगोल्फर

3

पॉवरशेल, 46 44 51 50 बाइट्स

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

Αचरित्र ग्रीक अक्षर अल्फा जिसमें PowerShell का डिफ़ॉल्ट सॉर्ट क्रम में सभी लैटिन अक्षर के बाद आता है (मेरे मशीन पर कम से कम, मैं नहीं यकीन है कि अगर यह अन्य स्थानों में अलग है हूँ) है। इसे UTF8 एन्कोडिंग में 2 बाइट्स के रूप में गिना जाता है।

उदाहरण उपयोग, इस स्ट्रिंग को संभालने वाली फ़ाइल में सहेजा गया है es-sort.ps1:

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

luego
lzego
llama

2

गणितज्ञ, 81 बाइट्स

StringReplace[Sort@StringReplace[#,"ch"->"cZ","ll"->"lZ"],"cZ"->"ch","lZ"->"ll"]&

टिम्मीड के जवाब के रूप में एक ही दृष्टिकोण।


1

अजगर 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

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