চিঠি, সংখ্যা, প্রতীক, স্থান, পুনরাবৃত্তি


36

নিয়মিতভাবে লোকেরা মুখোমুখি হয় 97 টি ASCII অক্ষর। এগুলি চারটি বিভাগে পড়ে:

  1. চিঠিগুলি (মোট 52 টি)

    ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
    
  2. সংখ্যা বা সংখ্যা (10 টি মোট)

    0123456789
    
  3. প্রতীক এবং বিরামচিহ্ন (মোট 32 টি)

    !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
    
  4. সাদা স্থান (মোট 3 জন)

    স্থান , ট্যাব \tএবং নিউলাইন \n। (আমরা নিউলাইন রূপগুলিকে \r\nএকটি চরিত্রের মতো আচরণ করব ))

সংক্ষিপ্ততার জন্য, আমরা এই বিভাগগুলিকে যথাক্রমে এল, এন, এস এবং ডব্লু বলব।

নিজের LNSWইচ্ছামত চিঠিগুলির 24 টির মধ্যে যে কোনও একটি বেছে নিন এবং নিজের জন্য প্রোগ্রামিং টেম্পলেট গঠনের জন্য এটি অনির্দিষ্টকালের জন্য পুনরাবৃত্তি করুন।

উদাহরণস্বরূপ, আপনি অনুমতিটি বেছে নিতে পারেন NLWS, তাই আপনার প্রোগ্রামিং টেম্পলেটটি হ'ল :

NLWSNLWSNLWSNLWSNLWS...

আপনাকে এই টেম্পলেটটির উপর ভিত্তি করে একটি প্রোগ্রাম বা ফাংশন লিখতে হবে যেখানে:

  1. প্রত্যেকটি Lকোনও অক্ষরের ( ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz) দ্বারা প্রতিস্থাপিত হয় ।

  2. প্রত্যেকটি Nকোনও সংখ্যার ( 0123456789) দ্বারা প্রতিস্থাপিত হয় ।

  3. প্রত্যেকটি Sকোনও প্রতীক ( !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~) দ্বারা প্রতিস্থাপিত হয় ।

  4. প্রত্যেকটি Wকোনও সাদা স্থানের অক্ষর ( \t\n) দ্বারা প্রতিস্থাপিত হয় ।

মূলত, আপনার কোডটি অবশ্যই প্যাটার্নটি অনুসরণ করবে

<letter><number><symbol><whitespace><letter><number><symbol><whitespace>...

প্রশ্নের শিরোনাম অনুসারে, আপনি চাইলে চারটি চরিত্রের বিভাগের আলাদা ক্রম চয়ন করতে পারেন।

মনে রাখবেন যে:

  • বিভাগের জন্য প্রতিস্থাপনগুলি বিভিন্ন অক্ষর হতে পারে। যেমন 9a ^8B\t~7c\n]বৈধভাবে টেমপ্লেটের সাথে সম্মত হয় NLWSNLWSNLWS( \tএবং \nতাদের আক্ষরিক অক্ষর হবে)।

  • কোনও কোড দৈর্ঘ্যের সীমাবদ্ধতা নেই are উদাহরণস্বরূপ 1A +2B -এবং 1A +2Bএবং 1A এবং 1সমস্ত টেম্পলেট অনুসারে NLWSNLWSNLWS...

আপনার টেমপ্লেট- কনফর্মড কোডটি যা করতে হবে তা হল একটি অব্যক্ত ASCII চরিত্রের মধ্যে নেওয়া এবং উপরের শ্রেণিবিন্যাসে এটি কোন শ্রেণীর সদস্য তার উপর ভিত্তি করে 0 থেকে 4 পর্যন্ত একটি সংখ্যা আউটপুট দেয়। তা হ'ল, 1ইনপুট যদি অক্ষর হয় 2তবে একটি সংখ্যা, 3যদি একটি প্রতীক, এবং 4যদি সাদা স্থান হয় output আউটপুট 0যদি ইনপুট এর মধ্যে কোনও না হয় (একটি নিয়ন্ত্রণ চরিত্র )।

ইনপুটটির জন্য, আপনি বিকল্পভাবে 0 থেকে 127 সংখ্যায় অন্তর্ভুক্ত নিতে পারেন যা ইনপুট ASCII অক্ষরের কোড উপস্থাপন করে।

আপনার কোডটি অবশ্যই ইনপুট (চর কোড হিসাবে) এবং আউটপুট জোড়া অবশ্যই অবশ্যই নীচে থাকবে:

in out
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 4
10 4
11 0 or 4
12 0 or 4
13 0 or 4
14 0
15 0
16 0
17 0
18 0
19 0
20 0
21 0
22 0
23 0
24 0
25 0
26 0
27 0
28 0
29 0
30 0
31 0
32 4
33 3
34 3
35 3
36 3
37 3
38 3
39 3
40 3
41 3
42 3
43 3
44 3
45 3
46 3
47 3
48 2
49 2
50 2
51 2
52 2
53 2
54 2
55 2
56 2
57 2
58 3
59 3
60 3
61 3
62 3
63 3
64 3
65 1
66 1
67 1
68 1
69 1
70 1
71 1
72 1
73 1
74 1
75 1
76 1
77 1
78 1
79 1
80 1
81 1
82 1
83 1
84 1
85 1
86 1
87 1
88 1
89 1
90 1
91 3
92 3
93 3
94 3
95 3
96 3
97 1
98 1
99 1
100 1
101 1
102 1
103 1
104 1
105 1
106 1
107 1
108 1
109 1
110 1
111 1
112 1
113 1
114 1
115 1
116 1
117 1
118 1
119 1
120 1
121 1
122 1
123 3
124 3
125 3
126 3
127 0

11, 12 এবং 13 ইনপুটগুলি এমন অক্ষরের সাথে সামঞ্জস্যপূর্ণ যা কখনও কখনও হোয়াইটস্পেস হিসাবে বিবেচিত হয়, সুতরাং তাদের আউটপুটগুলি আপনার ইচ্ছা অনুযায়ী 0বা 4আপনার ইচ্ছা মতো হতে পারে ।

বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।


5
2 ডি ভাষায় প্রথম উত্তরের কুকিজ।
ক্যালভিনের শখ

2
সুতরাং কেবল বিএফ ব্যবহার করুন এবং এসএসএসএস অক্ষরগুলি ব্যবহার করুন
ক্রিস্টোফার

2
এটি মূলত সমস্ত প্রচলিত প্রোগ্রামিং ভাষা বাদ দেয় 🙄 এছাড়াও, নিজস্ব কোড পৃষ্ঠা যেমন জেলি ব্যবহার করে এমন ভাষাগুলির সাথে কী করা যায়?
কেনেটিএম

1
অন্যান্য অক্ষর অনুমোদিত নয়।
ক্যালভিনের শখ

2
ইউনারি জিতবে!
ক্রিস্টোফার

উত্তর:


38

হাস্কেল 300 বাইট

এই কোডটিতে কোনও অনুমানযোগ্য নতুন লাইন থাকা উচিত নয়। ফাংশনটি m1ইনপুটটিকে a হিসাবে গ্রহণ করে Charএবং উত্তর হিসাবে a হিসাবে প্রত্যাবর্তন করে Char

f1 (l1 :n1 :p1 :y1 :l2 :n2 :p2 :y2 :r3 )x1 |y1 >p1 =b1 (x1 )y2 (f1 (r3 )x1 )y1 (n1 )n2 |p2 <p1 =b1 (x1 )y1 (n1 )p2 (f1 (p2 :y2 :r3 )x1 )l2 |p2 >p1 =b1 (x1 )p1 (l2 )l1 (n2 )n1
;b1 (x1 )s1 (r1 )b1 (r2 )r3 |x1 <s1 =r1 |x1 >b1 =r2 |s1 <b1 =r3
;m1 =f1 "d0 \t4 \r0 ~d3 {d1 `d3 [d1 @d3 :d2 /d3 !d4 \n0 ?d0 "

আমি যে চ্যালেঞ্জটি দাবি করেছি যে কেউ "প্রচলিত" ভাষার পক্ষে অসম্ভব বলে দাবি করেছে তা প্রতিহত করতে পারিনি।

হাস্কেল গণনা করা হয়েছে কিনা তা নিয়ে আপনি বিতর্ক করতে পারেন, তবে বেশিরভাগ কীওয়ার্ড এবং শনাক্তকারী একাধিক অক্ষর এবং ব্যবহার করা যাবে না। যাইহোক, শীর্ষ স্তরের ফাংশন সংজ্ঞা, তালিকা, স্ট্রিং লিটারেল, কঠোর তুলনা, প্যাটার্ন ম্যাচিং এবং রক্ষিবাহিনী কাজের সঙ্গে শাখাবিন্যাস, যতদিন চিঠি শুধু সংখ্যার আগে আসবে, এবং যদি প্রতীক চিঠি সামনে শুধু আসা আমরা মত পালাবার টি অক্ষর আছে \tএবং \r। দুর্ভাগ্যক্রমে যে প্রোগ্রামিংগুলি সাধারণ প্রোগ্রামিংয়ের জন্য কাজ করে তা সংখ্যাসূচককে অনুমতি দেয় না, তাই আমি কোনও কার্যকর উপায়ে নম্বর পেতে পারি না।

কিভাবে এটা কাজ করে:

  • অক্ষরের শ্রেণীর অন্তরগুলি শেষ রেখায় স্ট্রিংটিতে এনকোড থাকে, প্রতীকের বেশিরভাগ জায়গায় সীমানা অক্ষর থাকে এবং বেশিরভাগ ডিজিটের স্থানে ফলাফল হয়, যদিও কিছু প্রান্তে প্যাডিং হয়।
  • মূল কাজটি হ'ল m1
  • x1 চরিত্রটি বিশ্লেষণ করা হচ্ছে।
  • f1ফাংশন তালিকা প্যাটার্ন ম্যাচিং সহ STRING আপ ভঙ্গ, এবং তিন শাখা আছে: যখন সীমানা চিহ্ন স্থান চেয়ে বড় হয়, যখন গণ্ডি পলান করা হয় তা নিয়ন্ত্রণ ছোট স্থান চেয়ে এবং স্থান নিজেই চূড়ান্ত তুলনা পরিচালনা করার জন্য অক্ষরের জন্য। তালিকাগুলির নামগুলি প্রথম শাখার জন্য স্মৃতিচারণমূলক: চিঠি, নম্বর, এসপেস, এসওয়াম্বল, রিমাইন্ডার।
  • b1ফাংশন হ্যান্ডলগুলি দুই সীমানা অক্ষরের জন্য শাখাবিন্যাস s1 < b1একটি সময়ে।

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


1
সাইটে স্বাগতম! আমার অনুমান যে এটি বেশিরভাগ অপ-প্রচলিত ভাষার চেয়ে সংক্ষিপ্ত হবে যা প্রকৃতপক্ষে প্রয়োজনীয় ফলাফল অর্জন করতে পারে।
জোনাথন অ্যালান

উত্তম উত্তর! আমি
হাস্কেলকে

14

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

চিঠি, সংখ্যা, স্থান, প্রতীক, পুনরাবৃত্তি

T1 `a0 @a0 `b1	:D0
+T1 `d9 `a2
+T1 `a9	\n9 `a4
+T1 `l9 @L9 `a1
+T1 `d9 @p9 `d3
\b4
$n3
\b3
$n2
\b2
$n1
\b1
$n0
\n

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

নিজে পরীক্ষা করে দেখুন!

রেটিনা এই কাজের জন্য একটি দুর্দান্ত সরঞ্জাম বলে মনে হচ্ছে: স্টেজ কনফিগারেশনে আমরা নমনীয়ভাবে সব ধরণের অক্ষর ব্যবহার করতে পারি, এবং আমাদের কিছু পূর্বনির্ধারিত চরিত্রের ক্লাস রয়েছে যা দরকারী হতে পারে।

আমি মনে করি প্রতিস্থাপনের পর্যায়ে বা ট্রান্সলিটেশন পর্যায়ের দুটি ক্ষেত্রেই এই সমস্যার সমাধান হতে পারে; আমি ট্রান্সলিটেশনগুলি বেছে নিয়েছি কারণ এগুলি আরও নমনীয় এবং তাদের সর্বাধিক দরকারী চরিত্রের ক্লাস রয়েছে। উত্সের প্যাটার্ন সম্পর্কে, আমাকে \nনিউলাইনগুলির জন্য ব্যবহারের জন্য চিঠিগুলির ঠিক আগে চিহ্নগুলি প্রয়োগ করতে বাধ্য করা হয়েছিল (নতুন লাইনের জন্য আরও বাস্তব-ব্যবহারিক ব্যবহার করে আমার আসলে একটি সংক্ষিপ্ত সমাধান হয়েছিল, তবে অ-এসকি চরিত্রগুলি নিষিদ্ধ)।

ব্যাখ্যা

প্রথম পর্যায় হ'ল ট্রান্সলিটেশন। প্যাটার্নটি চালিয়ে যাওয়ার জন্য আমরা বিকল্প হিসাবে +এবং ব্যবহার করি 1তবে তারা পর্যায়ের ফলাফলকে প্রভাবিত করবে না। বাক্য গঠনটি হ'ল T`from`toপ্রতিটি চরিত্রকে fromএকই অবস্থানে অক্ষরে ম্যাপ করা to। যদি এর toচেয়ে কম হয় তবে fromএর চূড়ান্ত চরিত্রটি প্রয়োজনীয় হিসাবে পুনরাবৃত্তি করা হয়। যদি fromপুনরাবৃত্তি অক্ষর থাকে তবে প্রত্যেকের মধ্যে প্রথম ঘটনাটি বিবেচনা করা হয়। কিছু অক্ষর অক্ষর শ্রেণীর মিলা, যেমন dসমতূল্য 0123456789

T1 `a0 @a0 `b   :D0

এর সাহায্যে আমরা অনুলিপি লিখিত প্রতিবেদনের জন্য "কিছু জায়গা তৈরি করতে" একই শ্রেণীর অন্যান্য অক্ষরে কিছু অক্ষর ম্যাপ করি। ( a-> b, 0-> 1, space-> tab, @-> ;)। ফাইনালটি :D0কেবল একটি হাসিখুশি: ডি 0

+T1 `d9 `a2

আমরা অঙ্কগুলি দিয়ে শুরু করি, dএটি চরিত্রের শ্রেণি 0-9, এখানে আমরা রূপান্তর করছি 0-> a, 1-9-> 2, space-> 2: ট্রান্সপ্লিটেশনগুলি ভুল 0এবং spaceভুল, তবে সেই অক্ষরগুলি পূর্ববর্তী লিখিতরূপ দ্বারা মুছে ফেলা হয়েছে।

+T1 `a9 \n9 `a4

সাদা ব্যবধান, রুপান্তর a-> a, ( 9, tab, \n, space) -> 49পূর্ববর্তী পর্যায়ে ইতিমধ্যে সরানো হয়েছে।

+T1 `l9 @L9 `a1

চিঠিগুলি, এখানে আমরা দুটি পৃথক চরিত্রের ক্লাস ব্যবহার করি (আরও সম্পূর্ণ একটির অভাবে): lছোট হাতের অক্ষর এবং Lবড় হাতের অক্ষরের জন্য। 1পূর্ববর্তী পর্যায়ে ডিল করা অন্যান্য কয়েকটি চরিত্রের সাথে এগুলি সমস্তই ম্যাপ হয়ে যায়

+T1 `d9 @p9 `d3

প্রতীক। যেহেতু প্রত্যেক অন্যান্য বর্গ একটি অঙ্ক পরিণত হয়েছে, এখানে আমরা ভাবে সংখ্যা বসিয়ে নিজেদের সাথে মানচিত্রের d> - d, এবং তারপর সব মুদ্রণযোগ্য অক্ষর 3সঙ্গে p-> 3। অঙ্কগুলি মুদ্রণযোগ্য অক্ষরগুলির মধ্যেও রয়েছে তবে প্রথম লিখিত লিখিতরূপে বিজয়ী হয়।

0চরিত্রগুলি নিয়ন্ত্রণ করার জন্য এখন আমাদের নিয়োগ করা দরকার , তবে আমি স্পষ্টভাবে সেই শ্রেণিকে সম্বোধনের কোনও বৈধ উপায় খুঁজে পাইনি। পরিবর্তে, আমরা প্রতিটি অঙ্ককে অ্যানারিতে রূপান্তর করব: কন্ট্রোল অক্ষরগুলি অঙ্ক নয় এবং তাই 0এগুলিকে খালি স্ট্রিং হিসাবে বিবেচনা করা হবে, যা আনারিতে সমান । দুর্ভাগ্যক্রমে, রেটিনায় অ্যানারি রূপান্তর কমান্ডটি $*যা একে অপরের কাছাকাছি দুটি প্রতীক, তাই পরিবর্তে আমরা বিকল্পগুলি ব্যবহার করে "ম্যানুয়ালি" রূপান্তর করব।

\b4
$n3
\b3
$n2
\b2
$n1
\b1
$n0

আমাদের অখণ্ডিত অঙ্কটি $n, যা নতুন লাইনের প্রতিস্থাপনের ধরণ। \bএকটি "সীমানা" এর সাথে মেলে, যেখানে একটি বর্ণমালা শব্দ শুরু হয় বা শেষ হয়: আমাদের ক্ষেত্রে এটি সর্বদা কোনও সংখ্যার আগেই মিলবে match আমরা মূলত প্রতিটি সংখ্যাকে nএকটি নতুন লাইন প্লাস দিয়ে প্রতিস্থাপন করছি n-1

\n

শেষ পর্যন্ত, আমরা নিউলাইনগুলির সংখ্যা গণনা করি এবং পছন্দসই ফলাফল পাই।


11

কার্ডিনাল 2240 2224 বাইট

টেমপ্লেট এলএসএনডাব্লু ব্যবহৃত হয়েছে

a%1
a:1 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a+1 a+1 a+1 a+1 a.1 x.1 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a.0 a>0 a+1 a+1 a+1 a+1 a.1 x>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a+1 a+1 a+1 a.0 x>1 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a+1 a+1 a.0 x>1 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a>0 a+1 a+1 a+1 a.0 x>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a+1 a.0 x>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a+1 a+1 a+1 a.0 x>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a>1 a+1 a.0 x>1 a>1 a>1 a>1 a>1 a>1 a>1 a+1 a+1 a+1 a.0
a>1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a>1 a>1 a>1 a>1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a>1 a>1 a>1 a>1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a>1 a>1 a>1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a>1 a>1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a>1 a>1 a>1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a>1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a>1 a>1 a>1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^1 a>1 a-1 J^1 a-1 J^1 a-1 J^1 a-1 J^0 a.0

কোডটিতে একটি পেছনের নতুন লাইন রয়েছে।

কিভাবে এটা কাজ করে:

এই কোডটিতে প্রচুর অক্ষর রয়েছে যা ব্যবহৃত হয় না।
% সমস্ত দিকের মধ্যে একটি পয়েন্টার প্রকাশ করে। তাদের মধ্যে 3 কেবল একটি লাইনের শেষে আঘাত করে মারা যায়।
শেষ পয়েন্টারটি একটি ইনপুট নেয়:
এই ইনপুটটি 0 থেকে 127 পর্যন্ত প্রতিটি মানের সাথে তুলনা করা হয়।

ছাপে:
0 0-8 জন্য
4 9-12 জন্য
0 13-31 জন্য
4 32 জন্য
3 33-47 জন্য
2 48-57 জন্য
3 58-64 জন্য
1 65-90 জন্য
3 91-96 জন্য
97-122 1
123-126 এর জন্য 3
127 এর জন্য

অপারেশনগুলি ব্যবহার করা হয়েছে:
জে = অ-শূন্য হলে পরবর্তী অপারেশনটি এড়িয়ে
যান
> = দিক পরিবর্তন করুন> = বাম দিকে দিক পরিবর্তন করুন
- = হ্রাস
+ = বৃদ্ধি
: = ইনপুট নিন
% = প্রোগ্রামের শুরুতে পয়েন্টার তৈরি করুন
x = পয়েন্টার সরান
0 = সক্রিয় সেট করুন পয়েন্টারের মান 0

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


7

পার্ল 5 , 293 বাইট

291 এর জন্য বাইট কোড + 2 -0p

কমান্ড-লাইনের পতাকাগুলি বিনামূল্যে বলে আমাকে পরামর্শ দেওয়া হয়েছে, তবে টিআইও লিঙ্কটি -0সহজ পরীক্ষার জন্য অন্তর্ভুক্ত না হওয়ায় আমি এখানে এগুলি দৃশ্যমানতার জন্য যুক্ত করেছি ।

y 0-a 1"a 1#a 1$a 1%a 1&a 1'a 1(a 1)a 1*a 1+a 1,a 1.a 1/a 1_a 1{a 1|a 1}a 1~a 0!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 1!a 0;s 0\s
0\t
0;s 0\d
0\r
0;s 0\w
0\n
0;y 1!a 9-a 1_a 0-Z 1;s 0\w
0\u 3\u 0;s 1\S
1\u 0\u 1;s 0\t
0\u 4\u 0;s 0\r
0\u 2\u 0;s 0\n
0\u 1\u 0

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

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

ক্রম অর্ডার নির্বাচন বিশেষ করে চতুর কিন্তু forunately ছিল s///এবং y///একটি বিভেদক হিসাবে অন্য কোন চরিত্র গ্রহণ করতে পারে তাই এটি সম্ভব ছিল চিঠি, স্থান, সংখ্যা, প্রতীক, যার জন্য অনুমতি দেয় ব্যবহার করতে s 0...0...0;এবং y 0...0...0;

প্রথম appraoch জন্য প্রয়োজন বোধ করা জিনিস প্রতিস্থাপন ছিল _সঙ্গে !যাতে \wশুধুমাত্র মেলে দিবে [0-9a-zA-Z], তারপর সব হোয়াইটস্পেস প্রতিস্থাপন ( \s) সঙ্গে \tসঙ্গে ভাবে সংখ্যা বসিয়ে \rএবং সমস্ত অবশিষ্ট শব্দ অক্ষর ( \w) সঙ্গে \nসহজ মিলের জন্য পরে। তারপর, ব্যবহার y///অপারেটর, সমস্ত অবশিষ্ট প্রতীক শব্দ অক্ষর রূপান্তরিত হয় !থেকে _এবং সমস্ত অন্যান্য অক্ষর (মধ্যে 9এবং a), 9 স্থানগুলো বালিয়ে স্থানান্তরিত সেগুলিকে বর্ণ বা সংখ্যা পরিণত। এরপরে এর \wসাথে 3এবং অন্যটির মাধ্যমে প্রতিস্থাপন করা হয় , পূর্বে তৈরি বিকল্পগুলি তাদের সংখ্যাযুক্ত মানগুলির সাথে প্রতিস্থাপিত হয়।


1

হোয়াইটস্পেস , 1332 বাইট

Y0! Y0! Y0! Y0!
Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0!
Y0! Y0! Y0! Y0!
Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0!
Y0!
Y0! Y0!
Y0! Y0! Y0!
Y0!
Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0!
Y0! Y0! Y0!
Y0!
Y0!
Y0!
Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0!
Y0! Y0! Y0!
Y0!
Y0!
Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0! Y0!
Y0! Y0!
Y0! Y0! Y0!
Y0!
Y0!
Y0!
Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0!
Y0! Y0! Y0!
Y0!
Y0!
Y0!
Y0! Y0! Y0! Y0! Y0!
Y0! Y0! Y0! Y0!
Y0! Y0!
Y0! Y0! 

অর্ডার 1234/ LNSW(অক্ষর, অঙ্ক, প্রতীক, হোয়াইটস্পেস)।

এটি অনলাইনে চেষ্টা করুন (কোনও চরিত্রের ইউনিকোড উপস্থাপনা করে পূর্ণসংখ্যা হিসাবে ইনপুট)।

ব্যাখ্যা:

হোয়াইটস্পেস হ'ল স্ট্যাক-ভিত্তিক ভাষা যেখানে স্পেস, ট্যাব এবং নতুন লাইনগুলি বাদ দিয়ে প্রতিটি চরিত্রকে উপেক্ষা করা হয়। এখানে YO!( 333 বাইট ) ছাড়াই একই প্রোগ্রামটি দেওয়া হচ্ছে :

[S S S N
_Push_0][S N
S _Duplicate_0][T   N
T   T   _Read_STDIN_as_integer][T   T   T   _Retrieve][S N
S _Duplicate_input(9)][S N
S _Duplicate_input(10][S N
S _Duplicate_input(32)][S N
S _Duplicate_input(33-47)][S N
S _Duplicate_input(48-57)][S N
S _Duplicate_input(58-64)][S N
S _Duplicate_input(65-90)][S N
S _Duplicate_input(91-96)][S N
S _Duplicate_input(97-122)][S N
S _Duplicate_input(123-126)][S S S T    S S T   N
_Push_9][T  S S T   _Subtract][N
T   S S N
_If_0_Jump_to_Label_WHITESPACE][S S S T S T S N
_Push_10][T S S T   _Subtract][N
T   S S N
_If_0_Jump_to_Label_WHITESPACE][S S S T S S S S S N
_Push_32][T S S T   _Subtract][S N
S _Duplicate][N
T   S S N
_If_0_Jump_to_Label_WHITESPACE][N
T   T   S T N
_If_negative_Jump_to_Label_NONE][S S S T    T   S S S S N
_Push_48][T S S T   _Subtract][N
T   T   N
_If_negative_Jump_to_Label_SYMBOL][S S S T  T   T   S T S N
_Push_58][T S S T   _Subtract][N
T   T   S S N
_If_negative_Jump_to_Label_DIGIT][S S S T   S S S S S T N
_Push_65][T S S T   _Subtract][N
T   T   N
_If_negative_Jump_to_Label_SYMBOL][S S S T  S T T   S T T   N
_Push_91][T S S T   _Subtract][N
T   T   T   N
_If_negative_Jump_to_Label_LETTER][S S S T  T   S S S S T   N
_Push_97][T S S T   _Subtract][N
T   T   N
_If_negative_Jump_to_Label_SYMBOL][S S S T  T   T   T   S T T   N
_Push_123][T    S S T   _Subtract][N
T   T   T   N
_If_negative_Jump_to_Label_LETTER][S S S T  T   T   T   T   T   T   N
_Push_127][T    S S T   _Subtract][N
T   T   N
_If_negative_Jump_to_Label_SYMBOL][N
S N
S T N
_Jump_to_Label_NONE][N
S S S N
_Create_Label_WHITESPACE][S S S T   S S N
_Push_4][T  N
S T _Print_as_integer][N
N
N
_Exit][N
S S N
_Create_Label_SYMBOL][S S S T   T   N
_Push_3][T  N
S T _Print_as_integer][N
N
N
_Exit][N
S S S S N
_Create_Label_DIGIT][S S S T    S N
_Push_2][T  N
S T _Print_as_integer][N
N
N
_Exit][N
S S T   N
_Create_Label_LETTER][S S S T   N
_Push_1][T  N
S T _Print_as_integer][N
N
N
_Exit][N
S S S T N
_Create_Label_NONE][S S S N
_Push_0][T  N
S T _Print_as_integer]

বর্ণ S(স্থান), T(ট্যাব) এবং N(নতুন লাইন) কেবল হাইলাইট হিসাবে যুক্ত করা হয়েছে।
[..._some_action]শুধুমাত্র ব্যাখ্যা হিসাবে যুক্ত।

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

সিউডো কোডে প্রোগ্রাম:

If the input is 9, 10 or 32: call function WHITESPACE()
Else-if the input is below 32: call function NONE()
Else-if the input is below 48: call function SYMBOL()
Else-if the input is below 58: call function DIGIT()
Else-if the input is below 65: call function SYMBOL()
Else-if the input is below 91: call function LETTER()
Else-if the input is below 97: call function SYMBOL()
Else-if the input is below 123: call function LETTER()
Else-if the input is below 127: call function SYMBOL()
Else (the input is 127 or higher): call function NONE()

WHITESPACE():
  Print 4
  Exit program
SYMBOL():
  Print 3
  Exit program
DIGIT():
  Print 2
  Exit program
LETTER():
  Print 1
  Exit program
NONE():
  Print 0
  (Implicit exit with error: Exit not defined)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.