ওয়েলশ শব্দটি কতক্ষণ?


37

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা ওয়েলশ শব্দের প্রতিনিধিত্ব করে স্ট্রিং ইনপুট হিসাবে গ্রহণ করে (UTF-8 অন্যথায় আপনি নির্দিষ্ট না করে)।

নিম্নলিখিত ওয়েলশ সমস্ত একক অক্ষর :

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, তম, ইউ, ডাব্লু, ওয়াই

উইকিপিডিয়া উদ্ধৃত করতে ,

Digraphs যদিও ch , DD , FF , ng , করব , বাক্যাংশ , RH , প্রতিটি দুই প্রতীক সঙ্গে লেখা হয়, তারা সব একক অক্ষর বলে মনে করা হয়। এর অর্থ, উদাহরণস্বরূপ যে ল্যালেনেলি (সাউথ ওয়েলসের একটি শহর) ইংরেজীতে আটটি অক্ষরের তুলনায় ওয়েলশ ভাষায় মাত্র ছয়টি অক্ষর হিসাবে বিবেচিত হয়।

এই চিঠিগুলি ওয়েলশ ভাষায়ও রয়েছে, যদিও এগুলি অন্যান্য ভাষা থেকে ধার করা প্রযুক্তিগত শব্দভাণ্ডারের মধ্যে সীমাবদ্ধ রয়েছে:

k, q, v, x, z

ডায়াক্রিটিক্স সহ বর্ণগুলি পৃথক বর্ণ হিসাবে গণ্য করা হয় না তবে আপনার ক্রিয়াকলাপটি তাদের অবশ্যই গ্রহণ করবে এবং সেগুলি গণনা করতে সক্ষম হবে। এই জাতীয় অক্ষর সম্ভবত:

â, ê, î, ô, û, ŷ, ŵ, á, é, ó, ú, ý, ÿ, ẅ, à, ï, ü, ü, ÿ, ẅ, è, ì, ò, ù, ẁ

(এর অর্থ হল যে ASCII কোনও গ্রহণযোগ্য ইনপুট এনকোডিং নয়, কারণ এটি এই অক্ষরগুলিকে এনকোড করতে পারে না))

নোট:

  • এটি কোড গল্ফ।
  • লংগিফার্চের মতো শব্দের জন্য আপনাকে অ্যাকাউন্ট করতে হবে না , যাতে এনজি একটি ডিজিট্রাফ নয়, তবে দুটি পৃথক বর্ণ রয়েছে। এই শব্দটির নয়টি অক্ষর রয়েছে তবে আপনি এটি আটটি হিসাবে ভুল হিসাব করতে পারেন। (আপনি যদি এই জাতীয় শব্দের জন্য অ্যাকাউন্ট করতে পারেন তবে এটি এক ধরণের দুর্দান্ত, তবে এই চ্যালেঞ্জের বাইরেও))
  • ইনপুটটির কোনও শ্বেত স্পেস না থাকার গ্যারান্টি রয়েছে (যদি না আপনি এটিকে একক পেছনের নিউলাইন (বা আরও কিছু রহস্যময় কিছু) দিয়ে পছন্দ করেন তবে যে ক্ষেত্রে এটি সরবরাহ করা যেতে পারে)। অবশ্যই কোনও অভ্যন্তরীণ সাদা স্থান থাকবে না।

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

  • ল্যান্ডুডনো, ৮
  • ললেনেলি, 6
  • রাইল, ৩
  • ল্লানফায়ারপওয়ালগওয়াইংগিল্লোগেরিচওয়াইরেন্ড্রোব্ব্লাল্লান্টালিসিলিওোগোগোচ, ৫০ (সত্যই ৫১, তবে আমরা ৫০ গণনা করব)
  • Tŷr, 3
  • সাইমরু, ৫
  • গ্লেন্ডার,।

4
সমস্ত ছোট হাতের অক্ষরে কি ইনপুট দেওয়া যাবে?
ETH প্রোডাকশনগুলি

15
আমার স্ত্রী যিনি নেটিভ ওয়েলশ স্পিকার তিনি সুপারিশ করবেন যে জেটি "ধার করা" অক্ষর বিভাগে যুক্ত করা উচিত কারণ এটি ওয়েলশ বর্ণমালার অংশ নয়
রিচ স্টারকি

@ রিচ স্টার্কি উইকিপিডিয়া নিবন্ধটি সেই সামনের দিকে কিছুটা অস্পষ্ট ছিল। আমার বোধগম্য যে জিনটি ধার্য শব্দের ক্ষেত্রে ব্যবহৃত হয় এমনকি এটি মূল শব্দের মধ্যে উপস্থিত না থাকে, তাই এটি শব্দতাত্ত্বিকভাবে ব্যবহৃত হয়, যা বোঝায় যে এই পর্যায়ে এটি ভাষাতে প্রকৃতিগত। আইরিশ ভাষায় ভি সম্পর্কে একই রকম যুক্তি দেখেছি । এটি আইরিশ বর্ণমালার অংশ না হিসাবে বহুলভাবে বিবেচিত, তবে এটি কিছু আইরিশ নাম, যেমন Ó কুইভ-তে বিদ্যমান
ট্রিগ

1
এবং ওয়েলশ অর্থলোগ সংক্রান্ত নিবন্ধের একটি পাদটীকা mh , nh , এবং ngh কে গ্রাফিক্স হিসাবে তালিকাবদ্ধ করে । ভাষাগুলি SE তে আমার একটি প্রশ্ন খুলতে হবে এমন পদ্ধতিগুলি ।
ট্রিগ

3
লজ্জা লাগছে অনেক দেরি করে; সেই ট্রিপল-গ্লিফিড "এনজিএইচ" এটিকে আরও জটিল করে তুলতে পারে।
মেগাফ্লপ

উত্তর:


6

05 এ বি 1 ই , 24 23 21 বাইট

কোড:

u•éÓœ°D¥M™ù>•30B2ô0:g

ব্যাখ্যা:

u                      # Convert the input to uppercase.
 •éÓœ°D¥M™ù>•30B       # Compressed version of CHDDFFNGLLPHRHTH.
                         It convert the text between the •'s from base 214 to
                         base 10 and converts that to base 30.
                2ô     # Split into pieces of 2.
                  0:   # Replace each element that also occurs in the input by 0.
                    g  # Get the length of the processed input.

সিপি -1222 এনকোডিং ব্যবহার করে । এটি অনলাইন চেষ্টা করুন!


16

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

i`[cprt]h|dd|ff|ng|ll|.

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

এমনকি মোয়ার রেইজেক্স।


এটি সম্ভবত রেটিনার সম্পর্কে আমার অজ্ঞতা, তবে ইনপুট পাঠ্যের দৈর্ঘ্যের আউটপুটিংটি কোথায়? রেটিনার উপরের ডকুমেন্টেশনটি "এটি অনলাইনে এটি ব্যবহার করে দেখুন!" তে কীভাবে কাজ করছে তা ব্যাখ্যা করে বলে মনে হচ্ছে না! সাইট।
Xaero Degreaz

2
আউটপুট অন্তর্নিহিত, কারণ একমাত্র লাইন ম্যাচের সংখ্যা, ম্যাচের সংখ্যাটি ফিরিয়ে দেয়। এখানে, রেজেক্স প্রতিটি ওয়েলশ বর্ণের সাথে মেলে।
ব্যবহারকারী48538

সুতরাং যে যুক্তি দিয়ে, তারপর নীচে প্রতিটি উত্তর যেখানে দৈর্ঘ্য স্পষ্টভাবে কোড বলা হয় সংক্ষিপ্ত করা যেতে পারে?
Xaero Degreaz

2
@ কায়রোডেগ্রিজ রেটিনা হ'ল ভাষাগুলির মধ্যে একটি যা স্বয়ংক্রিয়ভাবে ম্যাচ গণনা করে প্রিন্ট করে দেয়। ভাষা এইভাবেই রেটিনা কাজ করে। অন্যান্য ভাষাগুলি কীভাবে কাজ করে তা নয় এবং তাই সঠিক আউটপুট পেতে সেই ভাষাগুলিকে তাদের দৈর্ঘ্যের ফাংশনগুলি স্পষ্টভাবে কল করতে হবে।
isaacg

ধন্যবাদ, আমি এখন বুঝতে পারি। ডকুমেন্টেশনটি আরও পড়ার পরে আমি ডিফল্ট "ম্যাচ" পর্যায়ে দেখতে পাই এই আউটপুটটি সম্পাদন করে।
Xaero Degreaz

5

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

x=>x.match(/[cprt]h|dd|ff|ng|ll|./gi).length

তুচ্ছ উত্তরটি সবচেয়ে কম হতে পারে।


5

BASH 52 50 (সেড + ডাব্লুসিটি) 41

-9 জর্দানকে ধন্যবাদ

sed -r 's,dd|ff|ng|ll|[cprt]h,1,gi'|wc -m

বড় হাতের অক্ষরের প্রয়োজন iহলে সেড কমান্ডের শেষে এটির দরকার হয়। (আমি এটি ছেড়ে দিয়েছি কারণ কিছু উদাহরণ না থাকলেও প্রশ্নের সমস্ত "একক বর্ণ" ছোট ছোট)।


1
এর grep -o .|wc -lবদলে কেন wc -c?
জর্ডান

wc -c দুটি হিসাবে c মাধ্যমে ẁ গণনা করে।
রিলে

আহ, অবশ্যই FWIW যদি আপনি GNU বা BSD ব্যবহার করেন তবে আপনি বাইটের পরিবর্তে অক্ষর গণনা wcকরতে পারেন -m
জর্ডান

আপনি স্থানান্তর করতে পারেন cথেকে chদিয়ে [prt]? sed -r 's,dd|ff|ng|ll|[cprt]h,1,gi'|wc -m
মেগাফ্লপ

2
এটা লজ্জা ([dfl])\1দীর্ঘতর হবে dd|ff|ll। চতুর সংস্করণটির পক্ষে আরও একটি দ্বিগুণ ব্যঞ্জনবর্ণ হবে।
টবি স্পিড

4

খড় , 30 58 35 33 বাইট

<((?i:[cprt]h|dd|ff|ng|ll|.))0/$>

রেজেক্সের প্রতিটি ঘটনাকে এর দ্বারা প্রতিস্থাপন করুন 0এবং অ্যানারি থেকে দশমিক রূপান্তর করুন।

দুঃখের বিষয়, স্ট্র রেগেক্সগুলিতে ফ্ল্যাগগুলি দিতে পারে না।আমি ?flags:নির্মাণ সম্পর্কে ভুলে গেছি

এটি অনলাইন চেষ্টা করুন! (যুক্ত কোডটি সমস্ত পরীক্ষার কেস যাচাই করা হয়)


এই ভাষা কীভাবে রেটিনার মতো কিছু থেকে আলাদা?
ডাউনওয়েট

@ ডাউনগোট স্ট্র স্ট্যাক-ভিত্তিক: পি
টাকসক্রাফ্টিং


3

পাওয়ারশেল ভি 2 +, 52 50 48 বাইট

($args[0]-replace'dd|ff|ng|ll|[prtc]h',0).length

-replaceসমস্ত দুটি-প্রতীক-একক-বর্ণের অক্ষরগুলিতে একটি করে কি তাদের পরিবর্তন করে 0(একটি অ-সংখ্যাতে পরিবর্তনের জন্য উদ্ধৃতিগুলির প্রয়োজন হবে) হয়ে যায়, তারপরে .lengthফলাফলের স্ট্রিংটি পাওয়া যায়।

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

PS C:\Tools\Scripts\golfing> 'Llandudno','Llanelli','Rhyl','Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch','Tŷr','Cymru','Glyndŵr'|%{"$_ --> "+(.\how-long-is-a-welsh-word.ps1 $_)}
Llandudno --> 8
Llanelli --> 6
Rhyl --> 3
Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch --> 50
Tŷr --> 3
Cymru --> 5
Glyndŵr --> 7

আমি পাওয়ারশেলের সাথে পরিচিত নই, তবে আশেপাশে আপনার কি প্রথম বন্ধনী প্রয়োজন [prtc]h?
জর্দান

@ জর্দান না, আমি দিই না। এটি পাওয়ারশেল জিনিস নয়, এটি একটি ভাল-ভাল-রেজিেক্স জিনিস নয়। : ডি গল্ফ জন্য ধন্যবাদ!
অ্যাডমবর্কবার্ক

2

ভি , 31 বাইট

Íã[cprt]hüddüffüngüllü./
Dé0@"

এটি অনলাইনে চেষ্টা করুন , বা সমস্ত পরীক্ষার কেস যাচাই করুন!

এটিতে কিছু মুদ্রিত অক্ষর রয়েছে, সুতরাং এখানে একটি হেক্সডাম্প রয়েছে:

0000000: cde3 5b63 7072 745d 68fc 6464 fc66 66fc  ..[cprt]h.dd.ff.
0000010: 6e67 fc6c 6cfc 2e2f 010a 44e9 3040 22    ng.ll../..D.0@"

2

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

<?=preg_match_all("#[cprt]h|dd|ff|ll|ng|.#iu",$argv[1]);

1
আমি বিশ্বাস করি [dfl]{2}ম্যাচ df, ldইত্যাদি সেইসাথে তার উদ্দেশ্যে ম্যাচ। dd|ff|llএকই দৈর্ঘ্য।
ETH প্রোডাকশনগুলি

1
আমি জানি যে আপনার বিশ্বাস সত্য, তবে আমি বিশ্বাস করি যে আপনার বিশ্বাস বিশ্বাসের এক প্রকার বিশ্বাস নয়। এটি এক ধরণের কাওলজির চেয়ে বেশি দেখাচ্ছে
জার্গ হালসারম্যান

1
echo(শেষে স্থান) এর পরিবর্তে , ব্যবহার করুন <?=, যা 2 বাইট সংরক্ষণ করে। এছাড়াও, $tসেখানে আরও 3 টি বাইট সংরক্ষণের প্রয়োজন নেই।
ইসমাইল মিগুয়েল

থানক ইউ ইসমাইল। আমার তখন আরও কিছুটা বিভ্রান্ত হওয়া আবশ্যক যে আমি remove টি অপসারণ করি না
Jörg Hülsermann

2

জাভা 7, 156 73 বাইট

@ অলিভিগ্রগ্রোয়ারকে ধন্যবাদ প্রচুর পরিমাণে বাইট সংরক্ষণ করা হয়েছে ।

int c(String s){return s.replaceAll("[cprt]h|dd|ff|ng|ll","*").length();}

অবহেলিত ও পরীক্ষার কেস:

এখানে চেষ্টা করুন।

class M{
  static int c(String s){
    return s.replaceAll("[cprt]h|dd|ff|ng|ll", "*").length();
  }

  public static void main(String[] a){
    System.out.println(c("llandudno"));
    System.out.println(c("llanelli"));
    System.out.println(c("rhyl"));
    System.out.println(c("llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch"));
    System.out.println(c("tŷr"));
    System.out.println(c("cymru"));
    System.out.println(c("glyndŵr"));
  }
}

আউটপুট:

8
6
3
50
3
5
7

আপনি আমদানি করেন এবং তারপরে আপনি Matcherসরাসরি ব্যবহার করেন না? : o এছাড়াও, Matcherলুপের জন্য সংজ্ঞায়িত করা যায়।
অলিভিয়ার গ্রাগোয়ার

1
আমার দৃ strong় অনুভূতি আছে যে return s.replaceAll("[cprt]h|dd|ff|ng|ll","a").length()উপায়, উপায় সংক্ষিপ্ত। এই কাজ করতে পারবেন না?
অলিভিয়ার গ্রাগোয়ার

ওয়েল, হ্যাঁ, এটি কাজ করে, এবং এটি জাভা 7 সংস্করণ ( int c(String s){return s.replaceAll("[cprt]h|dd|ff|ng|ll","a").length();}) এর 73 বাইট । এবং জাভা 8 সংস্করণ ( s->s.replaceAll("[cprt]h|dd|ff|ng|ll","a").length()) এর জন্য কেবল 51 ।
অলিভিয়ার গ্রাগোয়ার

1
@ অলিভিয়ারগ্রোওয়ের ধন্যবাদ Matcherছিল একটি দুর্ঘটনা। আমি এটি পরীক্ষার কোডে সঠিকভাবে পেয়েছি, তবে গল্ফড কোডে নেই ..>>> replaceAllতবে আপনার কাজগুলি আরও ভাল, ধন্যবাদ।
কেভিন ক্রুইজসেন

1

আর, 54 বাইট

অন্যান্য উত্তরগুলির সাথে খুব মিল। দুটি চরিত্রের যে কোনও একটি বর্ণের সাথে মেলে এবং তাদের প্রতিস্থাপন করে @এবং পরে অক্ষরের সংখ্যা গণনা করে। স্টিডিনের কাছ থেকে ইনপুট পড়ে। উপরের এবং ছোট হাতের অক্ষর উভয়কেই মেলানোর ignore.case = TRUEজন্য বিকল্পটি (তৃতীয় যুক্তি gsub) ব্যবহার করে ।

nchar(gsub("ch|dd|ff|ng|ll|ph|rh|th","@",scan(,""),T))

বোনাস

উভয় gsubএবং ncharভেক্টরাইজড যার অর্থ এটি একটি চরিত্রের ভেক্টর, যেমন:

v=c("Llandudno","Llanelli","Rhyl","Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch","Tŷr","Cymru","Glyndŵr")
nchar(gsub("ch|dd|ff|ng|ll|ph|rh|th","@",v,T))

সৃষ্টি করে:

[1]  8  6  3 50  3  5  7


0

এক্সকুয়েরি, 77 বাইট

declare variable$s external;count(tokenize($s,'[cprt]h|ff|dd|ll|ng|.','i'))-1


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.