এটি কি অর্ডার করা শব্দ?


26

( ধাঁধা নিয়ে এই পোস্টটি দ্বারা অনুপ্রাণিত । সতর্কতা: নীচে এই পাজল জন্য স্পিকাররা।)

স্ট্যান্ডার্ড টেলিফোন কিপ্যাড নীচের সাথে সংখ্যার সাথে চিঠিগুলি সংযুক্ত করে:

1 ->
2 -> ABC
3 -> DEF
4 -> GHI
5 -> JKL
6 -> MNO
7 -> PQRS
8 -> TUV
9 -> WXYZ
0 ->

প্রদত্ত ইনপুট শব্দটিকে অর্ডার করা শব্দ হিসাবে সংজ্ঞায়িত করা হয় যদি উপরেরটি ব্যবহার করে কীপ্যাড টিপে অনুবাদ করা হয়, ফলস্বরূপ সংখ্যাটি হ্রাস-হ্রাস বা বৃদ্ধি-না করায় হয়। অন্য কথায়, ফলাফল সংখ্যা বৃদ্ধি এবং হ্রাস উভয়ই করতে পারে না ।

উদাহরণস্বরূপ, শব্দটি CATঅনুবাদ করে 228, যা কমছে না এবং এভাবে অর্ডার করা শব্দ। যাইহোক, শব্দটি DOGহ'ল 364যা উভয়ই বৃদ্ধি এবং হ্রাস পায় এবং এইভাবে অর্ডার করা শব্দ নয়।

চ্যালেঞ্জ

একটি শব্দ দেওয়া হয়েছে, এটি অর্ডার করা হয়েছে কিনা আউটপুট।

ইনপুট

  • কোনও উপযুক্ত বিন্যাসে কেবল ASCII বর্ণমালা ( [A-Z]বা [a-z]) অক্ষর সমন্বিত একটি শব্দ (অগত্যা একটি অভিধানের শব্দ নয়) ।
  • আপনার পছন্দটি যদি ইনপুটটি সমস্ত বড় হাতের বা সমস্ত ছোট হাতের হয় তবে এটি অবশ্যই সামঞ্জস্যপূর্ণ।
  • শব্দটির দৈর্ঘ্য কমপক্ষে 3 টি হবে।

আউটপুট

ইনপুট শব্দটি অর্ডার করা (সত্যবাদী) বা অর্ডার করা হয়নি (মিথ্যা) তার জন্য একটি ধারাবাহিক সত্য / মিথ্যা মান।

বিধি

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

উদাহরণ

এখানে কয়েকটি অর্ডার করা শব্দ (অর্থাত সত্যবাদী) রয়েছে এবং লিঙ্কযুক্ত পাজল ধাঁধা সম্পর্কে আরও রয়েছে।

CAT
TAC
AAA
DEMONS
SKID
LKJONMSRQP
ABCDEFGHIJKLMNOPQRSTUVWXYZ

এখানে কিছু অর্ডার না করা শব্দ (অর্থাত্ মিথ্যা)

DOG
GOD
ROSE
COFFEE
JKLMNOGHI

সম্পর্কিত এবং সম্পর্কিত আমি নিশ্চিত নই যে এটি কোনও ধাপ নয়, একমাত্র পরিবর্তন abc->t9এবং এই চ্যালেঞ্জটি একঘেয়েমি পরীক্ষা করছে?
nmjcman101

1
@ nmjcman101 হ্যাঁ, সেগুলি সম্পর্কিত, তবে কঠোরতার চেয়ে আরও ভাল (আরও ভাল?) উপায় থাকতে পারে abc->t9
অ্যাডমবর্কবার্ক



পরীক্ষার কেসের অনুরোধ:AAA
বিজনেস বিড়াল

উত্তর:


13

পাইথন 2 , 164 148 132 77 বাইট

-16 কোথাও রডের পরামর্শকে ধন্যবাদ বাইটস । একটি ফ্রিকিন '-৫৫ বাইট আর্নল্ড পামারকে ধন্যবাদ জানায়।

n=[min(int((ord(i)-58)/3.13),9)for i in input()]
print sorted(n)in[n,n[::-1]]

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

ইনপুট অবশ্যই বড় হাতের হতে হবে। আউটপুট Trueবা Falseতার আদেশের উপর ভিত্তি করে।


ব্যাখ্যা

প্রথম লাইন প্রতিটি বর্ণকে একটি সংখ্যায় মানচিত্র করে।

                               for i in input()   # iterate over the input string
            ord(i)                                # take the ASCII ordinal
                  -58                             # subtract 58
           (         )/3.13                       # divide by 3.13
       int(                )                      # chop off the fractional part
   min(                     ,9)                   # choose the minimum between the number and 9
n=[                                            ]  # assign the resulting list to n

এটি উপর ভিত্তি করে কাজ করে:

          | A   B   C  | D   E   F  | G   H   I  | J   K   L  | M   N   O  | P   Q   R   S  | T   U   V  | W   X   Y   Z
----------+------------+------------+------------+------------+------------+----------------+------------+-----------------
ord(x)    | 65  66  67 | 68  69  70 | 71  72  73 | 74  75  76 | 77  78  79 | 80  81  82  83 | 84  85  86 | 87  88  89  90
----------+------------+------------+------------+------------+------------+----------------+------------+-----------------
x - 58    | 7   8   9  | 10  11  12 | 13  14  15 | 16  17  18 | 19  20  21 | 22  23  24  25 | 26  27  28 | 29  30  31  32
----------+------------+------------+------------+------------+------------+----------------+------------+-----------------
x ÷ 3.13* | 2.2 2.6 2.9| 3.2 3.5 3.8| 4.2 4.5 4.8| 5.1 5.4 5.8| 6.1 6.4 6.7| 7.0 7.3 7.7 7.9| 8.3 8.6 8.9| 9.3 9.6 9.9 10.2
----------+------------+------------+------------+------------+------------+----------------+------------+-----------------
int(x)    | 2   2   2  | 3   3   3  | 4   4   4  | 5   5   5  | 6   6   6  | 7   7   7   7  | 8   8   8  | 9   9   9   10
----------+------------+------------+------------+------------+------------+----------------+------------+-----------------
min(x, 9) | 2   2   2  | 3   3   3  | 4   4   4  | 5   5   5  | 6   6   6  | 7   7   7   7  | 8   8   8  | 9   9   9   9

* মানগুলি বৃত্তাকার হয়। : P: P

সংখ্যাগুলির তালিকা যদি আরোহী বা অবতরণ ক্রমে থাকে তবে দ্বিতীয় লাইনের আউটপুট।

print                                             # print whether...
      sorted(n)                                   # n sorted...
               in[n,n[::-1]]                      # is equivalent to n or n reversed


1
পবিত্র গরু, এটা দুর্দান্ত। ধন্যবাদ!
সম্পূর্ণরূপে

আমি এটি একটি উত্তর কারণ হিসাবে পোস্ট করতে যাচ্ছিলাম আমি প্রত্যেকে উত্তর দিয়ে বন্যার আগে এটি লিখেছিলাম, তবে আপনি আমাকে স্নিপ করেছেন :)
আর্নল্ড পামার

8

জাভাস্ক্রিপ্ট (ES6),  83 ... 71  70 বাইট

একটি বুলিয়ান ফেরত দেয়।

x=>[...x].every(c=>v&=~(k=x,x=parseInt(c,35)*.32|0||10,x<k?2:x>k),v=3)

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


কিভাবে?

পত্র রূপান্তর ion

আমরা parseInt(c, 35)ইনপুট স্ট্রিংয়ের প্রতিটি বর্ণকে কিছু সংখ্যায় [ 10 .. 34 ] তে রূপান্তর করতে ব্যবহার করি । কারণ এটি বেস -35, "জেড"NaN পরিবর্তে রূপান্তরিত হয়েছে ।

অভিব্যক্তিটি * .32 | 0এই সংখ্যাটি ব্যবধানে ম্যাপ করে [ 3 .. 10 ], যা "এ" থেকে "ওয়াই" এর জন্য 8 টি অক্ষরের সঠিক গ্রুপের দিকে পরিচালিত করে । আমাদের "জেড"|| 10 এর সঠিক মান পাওয়া দরকার ।

           | A  B  C| D  E  F| G  H  I| J  K  L| M  N  O| P  Q  R  S| T  U  V| W  X  Y   Z
-----------+--------+--------+--------+--------+--------+-----------+--------+------------
parseInt   |10 11 12|13 14 15|16 17 18|19 20 21|22 23 24|25 26 27 28|29 30 31|32 33 34 NaN
-----------+--------+--------+--------+--------+--------+-----------+--------+------------
*.32|0||10 | 3  3  3| 4  4  4| 5  5  5| 6  6  6| 7  7  7| 8  8  8  8| 9  9  9|10 10 10  10

অর্ডার পরীক্ষা

আমরা বিট-মাস্কের মধ্যে পরপর সংখ্যার মধ্যে পার্থক্য লক্ষণ ট্র্যাক রাখতে বনাম প্রথমে 3 (0b11) সেট:

  • বিট # 0: নতুন_মেনু> পূর্ববর্তী_মূল্যটি সাফ হয়ে গেলে
  • বিট # 1: নতুন_মালু <পূর্ববর্তী_মূল্যটি সাফ হয়ে গেলে

পূর্ববর্তী মানটি ইনপুট হিসাবে একই ভেরিয়েবল এক্স এ সঞ্চয় করা হয় । এটি নিশ্চিত করে যে প্রথম পুনরাবৃত্তি - যেখানে পূর্বের কোনও মান আসলে উপস্থিত নেই - কোনও বিট সাফ করবে না কারণ কেবলমাত্র অক্ষরযুক্ত একটি স্ট্রিং কোনও সংখ্যার চেয়ে বড় বা কম নয়:

('CAT' > 5) === false
('CAT' < 5) === false

উভয় লক্ষণগুলির মুখোমুখি না হলে একটি শব্দ অর্ডার করা হয়, যা v = 0 বাড়ে এবং every()ব্যর্থ হয়।


ওহ, প্রতিটি চিঠির সংখ্যা পাওয়ার জন্য দুর্দান্ত কৌশল: আমি এটি ধার করা উচিত কিনা তা সম্পর্কে আমি ছিন্ন ছিটিয়েছি, কারণ এর অর্থ হ'ল আমি আপনার সাথে বেঁধে দেব, যা সঠিক বলে মনে হচ্ছে না।
শেগি

6

জেলি , 28, 27, 25, 23, 22, 21, 19, 18 বাইট

_>
O‘ç82ç88:3IṠḟ0E

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

এই লিখতে অনেক মজা লাগল!

ব্যাখ্যা:

                # Define a helper link, decrement a if a > b
_               # Subtract
 >              # Boolean greater than
                # Main link:
O               # The ordinals (ASCII points) of the input
 ‘              # Minus one
  ç82           # Decrement if greater than 82
     ç88        # Decrement if greater than 88
        :3      # Divide each number by 3
          I     # Consecutive differences
           Ṡ    # Sign (-1 if < 0, 0 if == 0, and 1 if > 0)
            ḟ0  # Remove all 0's
              E # All elements are equal?

সমস্ত সেটিং বাইটের জন্য @ এরিক ওউটগল্ফার, @ লেকিনুন এবং @ বিজনেসগেটকে ধন্যবাদ। :)


3

05 এ বি 1 ই , 36 বাইট

v.•1нJ©½è`ÇHø¹á₂N¸°…ÈáÀ•#Dʒyå}k}¥0‹Ë

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


4
আপনি .•1нJ©½è`ÇHø¹á₂N¸°…ÈáÀ•#দ্বারা প্রতিস্থাপন করতে পারেন A•22ā₂•S£
আদনান

3
@ আদনান ফির ফর্ম্যাটিং
লিকি নুন

3
@ ল্যাকইনুন <s> চিরতরে ফিক্স </ s> স্থির হয়েছে
আদনান

4
@ আদনান ফির ফর্ম্যাটিং
লিকি নুন

4
@ লেকিউন সত্যই চিড়ে
আদনান

3

এমএটিএল , 26 25 বাইট

1Y21K250B-Y{c&m8\dZSu|s2<

ইনপুট বড় হাতের অক্ষরে থাকে। আউটপুট হয় 1বা 0

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

ব্যাখ্যা

1Y2      % Push 'ABC...XYZ'
1        % Push 1
K        % Push 4
250B     % Push 250 in binary, that is, [1 1 1 1 1 0 1 0]
-        % Subtract (from 4, element-wise): gives [3 3 3 3 3 4 1 4]
Y{       % Convert to cell array, splitting into chunks of those lengths
c        % Convert to char matrix. Gives a 4-column matrix. Chunks of length 3
         % are right-padded with a space
&m       % Implicit input. Push (linear) index of membership in char matrix
8\       % Modulo 8. Converts linear index into 0-based row index
d        % Consecutive differences
ZS       % Sign
u        % Unique
|        % Absolute value
s        % Sum
2<       % Less than 2? Implicit display

বর্ণমালার চ্যালেঞ্জের জন্য উপযুক্ত স্কোর: পি
ডিজেএমসিএমহেম

@ ডিজেএমসিমেহেম আর নয় :
লুইস মেন্ডো

3

হুস্ক , 22 21 19 18 বাইট

±S€Ẋ▲`Ṫo±≤"DGJMPTW

রিটার্নস 1truthy ইনপুট জন্য 0falsy বেশী জন্য। ইনপুট অবশ্যই বড়হাতে থাকতে হবে। সমস্ত পরীক্ষার কেস পাস করে। এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

±S€Ẋ▲`Ṫo±≤"DGJMPTW  Implicit input x, e.g. "CAT"
     `Ṫo±≤"DGJMPTW  This part transforms x into a "canonical form" corresponding to the numpad digits
     `Ṫ             Table with flipped arguments
       o±≤          on sign of less-than-or-equal
                    (In Husk, ≤ returns extra information we don't want, so we take sign of the result to get 0 or 1.)
          "DGJMPTW  of this string and x.
                    This gives, for each char in x, a bit array of comparisons with the chars in the string:
                    y = [[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[1,1,1,1,1,1,0]]
   Ẋ▲               Maxima of adjacent pairs: [[0,0,0,0,0,0,0],[1,1,1,1,1,1,0]]
 S€                 1-based index in y as sublist: 2
±                   Sign: 1

3

পাইথন 2 , 60 বাইট

a=[3681/ord(c)for c in input()]
print sorted(a)in[a,a[::-1]]

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

লোয়ারকেসে ইনপুট গ্রহণ করে।

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

⌊3681 / x from থেকে হ্রাস পায়

  • এর আগে x x 96.8684210526 এ 38 থেকে 37 a;
  • 37 থেকে 36 এ x ≈ 99.4864864865 এর মধ্যে cএবং এর মধ্যে d;
  • X থেকে to 102.25 এ 36 থেকে 35 , এর মধ্যে fএবং g;
  • X থেকে to 105.171428571 এ 35 থেকে 34 , এর মধ্যে iএবং j;
  • X থেকে x 108.264705882 এ 34 থেকে 33 , এর মধ্যে lএবং m;
  • 33 থেকে 32 x 1 111.545454545 এ, এর মধ্যে oএবং p;
  • X থেকে to 115.03125 এ 32 থেকে 31 , এর মধ্যে sএবং t;
  • 31 থেকে 30 xv এবং 118.741935484 এ, এর মধ্যে এবং w;
  • 30 থেকে 29 x ≈ 122.7 এ, পরে z

2

সি ++, 375 199 195 194 বাইট

শেগির জাভাস্ক্রিপ্ট উত্তরের জন্য:
জ্যাকারিকে ধন্যবাদ -5 বাইট

#include<string>
int o(std::string a){std::string m="22233344455566677778889999";for(auto&b:a)b=m[b-65];int j=1,i=0,d=0;for(;j<a.size();++j){if(a[j]>a[j-1])++i;if(a[j]<a[j-1])++d;}return!(i*d);}

আপনি কি লুপটির জন্য স্থানান্তর করতে int j=1,i=0,d=0পারেন?
জাকারি

@ Zachary যেহেতু iএবং dলুপ ব্লক বাইরে ব্যবহার করা হয়, আমি পারব না
HatsuPointerKun

i==0||d==0==> i*d==0
জাকারি

চান !(i*d)কাজ করে? (এর পরে স্থান অপসারণ return)
জাকারি

@ জ্যাচারý হ্যাঁ, এটি কাজ করে
হাটসুপয়েন্টারকুন

1

05 এ বি 1 ই , 30 বাইট

A3 8×Ƶ0+S£¹δåā>‚øε`*}.«+¥0K0‹Ë

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

-1 ম্যাজিক অক্টোপাস উরনকে ধন্যবাদ ।


আপনি সঠিক না ¥0K0.SËবলে ব্যবহার করেছেন ¥0‹Ë? 0.Sদরকার আছে কিনা তা বলতে পারছি না ।
ম্যাজিক অক্টোপাস উরন

@ ম্যাজিক অ্যাক্টপাস ইউরান আসলে ¥0K0‹Ëকাজ করছে বলে মনে হচ্ছে।
এরিক দি আউটগল্ফার

হ্যাঁ, আপনি যদি 0 টি অপসারণ করেন তবে এটি করা উচিত; আমার উত্তরে আমি নিশ্চিত যে এটি কাজ করে না।
ম্যাজিক অক্টোপাস উরন

@ ম্যাজিক অ্যাক্টোপাস ইউরান আমি 0-এর দশকে অপসারণ করছি অন্যথায় ভুল negativeণাত্মক হবে। আপনার উত্তর যদিও অন্যরকম আচরণ করে।
এরিক আউটগল্ফার

1

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

T`_ADGJMPTW`d
}T`L`_L
(.)\1*
$1$*1<
(1+)<(?!\1)
$1>
1

^(<*|>*)>$

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার কেস অন্তর্ভুক্ত রয়েছে। ব্যাখ্যা:

T`_ADGJMPTW`d

প্রতিটি কীতে প্রথম বর্ণটি একটি অঙ্কে পরিবর্তন করুন। (এটি 1 দিয়ে বন্ধ রয়েছে তবে আরোহী / উত্থানের চেকের জন্য এটি কোনও ব্যাপার নয় the অন্যদিকে, জিরোস আমার জীবনকে আরও কঠিন করে তুলবে, তাই আমি একটি ফিলার চরিত্রটি রেখে দিয়েছি))

}T`L`_L

বাকী সমস্ত অক্ষর ১ টি পর্যন্ত পরিবর্তন করুন এবং সেগুলি সমস্ত সংখ্যায় রূপান্তরিত না হওয়া পর্যন্ত পুনরাবৃত্তি করুন।

(.)\1*
$1$*1<

অংকগুলিকে অচেনা রূপান্তরিত করুন, তবে কেবল একবারে অভিন্ন অঙ্কের প্রতি রান। অবিচ্ছিন্ন মানগুলি একটি দিয়ে পৃথক করা হয় <...

(1+)<(?!\1)
$1>

... কিন্তু যদি LHS সক্রিয় আউট RHS তার চেয়ে অনেক বেশী হতে পারে, সংশোধন <করার জন্য >

1

1যেগুলি আর দরকার নেই সেগুলি মুছুন ।

^(<*|>*)>$

শব্দটি অর্ডার করা হয়েছে তা পরীক্ষা করুন। ( >শেষের অঙ্কটি শেষ অঙ্কটি থেকে আসে যা সর্বদা এটি অনুসরণ করে ফাঁকা জায়গার চেয়ে বেশি তুলনা করে))


যে বেশ শান্ত. পুরো ব্যাখ্যা জন্য ধন্যবাদ।
অ্যাডমবর্কবার্ক

1

পাইথ , 23 বাইট

আমার প্রথম তুচ্ছ একটি পাইথ উত্তর! @ লিক্যুনকে ধন্যবাদ 6 বাইট সংরক্ষণ করা হয়েছে। প্রাথমিক সমাধানটি নীচে রয়েছে।

/{_BKmhS,9/a58Cd3.13zSK

পরীক্ষা স্যুট.

পাইথ , 29 বাইট

KmhS+9]/-Cd58 3.13w|qKSKqK_SK

পরীক্ষা স্যুট.


ব্যাখ্যা

/{_BKmhS,9/a58Cd3.13zSKQ - প্রশ্নটির অর্থ মূল্যায়িত ইনপুট এবং শেষে অন্তর্নিহিত

 {- অনুলিপি
  _ - বিপরীত
   বি - বিফুরকেট, একটি দ্বি-উপাদান তালিকা তৈরি করুন, [বি, এ (বি)]
    কে - স্বতঃ-নিয়োগের সাথে এর পরিবর্তনশীল:
     এমজেড - ইনপুটটির উপরে মানচিত্র:
      এইচএস - সর্বনিম্ন (সাজানো তালিকার প্রথম উপাদান)
        , - এই উপাদানগুলির সাথে একটি দ্বি-উপাদান তালিকা তৈরি করুন [A, B]:
         9 - সংখ্যাগত আক্ষরিক 9
          / - এর পূর্ণসংখ্যা বিভাগ:
           a58Cd - 58 এবং অর্ডের মধ্যে সম্পূর্ণ পার্থক্য (বর্তমান_সংশ্লিষ্ট)   
                3.13 - সংখ্যাগত আক্ষরিক 3.13
                    এস কে - কে বাছাই করা হয়েছে
/ কিউ - [কে, কে [:: - 1]] এ ইনপুটটির উপস্থিতিগুলি গণনা করুন                


1

05 এ বি 1 ই , 21 17 বাইট

কোড

A•22ā₂•Sās×J‡Ô¥dË

05AB1E এনকোডিং ব্যবহার করে ।

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

ব্যাখ্যা

A                   # Push the lowercase alphabet
 •22ā₂•             # Push the number 33333434
       S            # Split into an array
        ā           # Get the range of indices [1 .. length]
         s×         # Swap and string multiply
           J        # Join that array
            ‡       # Transliterate

এটি এখন নিম্নলিখিত সংখ্যাগুলিতে মূলত নিম্নলিখিত বর্ণগুলি মানচিত্র করে:

abcdefghijklmnopqrstuvwxyz
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
11122233344455566667778888

             Ô      # Remove consecutive duplicates
              ¥     # Compute the delta's of the list
               d    # Check if the number is greater or equal to 0
                Ë   # Check if all elements are the same

1

জাভাস্ক্রিপ্ট (ES6), 107 97 95 92 88 85 বাইট

মিশ্র-কেস স্ট্রিংয়ের সাথে কাজ করে। রিটার্নস 1truthy জন্য অথবা 0falsey জন্য।

s=>(s=(a=[...s].map(c=>(parseInt(c,36)-3)/3.13%10|0||9))+"")==a.sort()|s==a.reverse()
  • 10 বাইট ধন্যবাদ সংরক্ষিত রড

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

o.innerText=(f=
s=>(s=(a=[...s].map(c=>(parseInt(c,36)-3)/3.13%10|0||9))+"")==a.sort()|s==a.reverse()
)(i.value="Cat")
oninput=_=>o.innerText=f(i.value)
<input id=i><pre id=o>


1
Math.min((parseInt(c,36)-3)/3.13|0,9)পরিবর্তে "2..9"[parseInt(c,36)-10]কিছু বাইট সংরক্ষণ করতে
রড

ধন্যবাদ, @ রড; খুব সুন্দর. ভবিষ্যতের ব্যবহারের জন্য আমাকে তা ফাইল করতে হবে।
শেগি


ধন্যবাদ, @ পাইপরেট বে, কিন্তু দুঃখের বিষয়, এটি ইনপুটটির জন্য ব্যর্থ AAA
শেগি

1

গাইয়া , 29 27 25 17 বাইট

ċ⟨):“QX’>¦Σ⁻3/⟩¦o

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

ব্যাখ্যা

ċ                  Turn the input into a list of code points
 ⟨            ⟩¦   Map this block to each code point:
  )                 Increment it
   :                Copy it
    “QX’            Push [81 88]
        >¦          Check if the code point is greater than each of [81 88]
          Σ         Sum the results
           ⁻        Subtract from the code point
            3/      Integer divide the result by 3
                o  Check if the resulting list is in sorted order (increasing or decreasing)

1

05 এ বি 1 ই , 13 বাইট

ÇÍžq÷8
7:Ô¥dË

যখনই আমি একটি নামপ্যাড প্রশ্ন দেখি, আমাকে পাই-ভিত্তিক উত্তর দিতে হবে।

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

Ç                    # ASCII code of each letter in the input
 Í                   # add 2
  žq÷                # divide by pi
     8 7:            # replace 8 with 7
         Ô           # remove duplicates
          ¥          # deltas
           d         # each >= 0 ?
            Ë        # are all elements equal?

0

জেলি , 32 বাইট

“¢Ç⁺H’D0ẋj1œṗØA⁸=€×"€9Ḋ¤Fḟ0Iḟ0ṠE

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


আরআইপি সংকোচনের
লিকি নুন

@ লেকিউন সংক্ষেপিত সংখ্যাটি আসলে 32222323তাই এটি কেবল 2 বাইট সংরক্ষণ করে।
এরিক দি আউটগল্ফার

0

সি # (.নেট কোর) , 133 বাইট

using System.Linq;q=>{var u=q.Select(c=>(int)((c-58)/3.13));var z=u.Zip(u.Skip(1),(a,b)=>a-b);return!(z.Any(d=>d<0)&z.Any(d=>d>0));};

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

আমি মনে করি সংরক্ষণ করার মতো কিছু জায়গা আছে, তবে সি # একটি সংক্ষিপ্ত ভাষা নয় তাই সম্ভবত। Ungolfed:

bool Ordered(string word){

    IEnumerable<int> keys = word.Select(character => (int)((character - 58)/3.13)); 
    // convert characters to keypad number

    IEnumerable<int> differences = keys.Zip(keys.Skip(1), (a, b)=> a-b); 
    // difference between consecutive elements

    return !(differences.Any(diff => diff<0) & differences.Any(diff => diff>0)); 
    // false if both positive and negative differences exist
}

বিশেষত আমি মনে করি বৈধতার জন্য চূড়ান্ত চেকটি প্রকাশ করার একটি আরও ছোট উপায় আছে, সম্ভবত এটির সাথে ইনলাইন করার একটি উপায় Zip। এর Zipজন্য অস্থায়ী স্টোরেজ প্রয়োজন না করে প্রকাশ করার উপায় খুঁজে পাওয়াও Skipকিছু বাঁচাতে পারে তবে আমি সন্দেহ করি যে এর জন্য আরও কিছুটা সংক্ষিপ্ততর আছে।


0

পাইথন 3 , 143 147 148 149 130 বাইট

def g(s,f=lambda c:min(int((ord(c)-58)/3.13),9)):x=[f(a)-f(b)for a,b in zip(s,s[1:])];return any(t<0for t in x)*any(t>0for t in x)

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

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


আপনি x=[f(a)-f(b)for a,b in zip(s,s[1:])]কিছু বাইট সংরক্ষণ করতে ব্যবহার করতে পারেন
রড

এছাড়াও, min(int((ord(c)-58)/3.13),9)
রড


@ রড ধন্যবাদ! খুব উপকারী.
সি ম্যাকভয়

এটি কার্যকর হওয়ার জন্য আপনাকে আপনার আউটপুটগুলি অদলবদল করতে হবে।
শেগি

0

পাইথন 2 , 111 103 বাইট

-8 বাইটস @ আর্নল্ড পামারকে ধন্যবাদ: lower()দরকার নেই

  • ইনপুট হিসাবে বড় হাতের অক্ষর নেয় T
lambda x:sorted(f(x))in[f(x),f(x)[::-1]]
f=lambda x:['22233344455566677778889999'[ord(i)-65]for i in x]

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


1
আপনি সরিয়ে ফেলতে পারেন .lower()যেহেতু ইনপুট আপনি যে কোনও ক্ষেত্রেই উল্লেখ করতে পারেন।
আর্নল্ড পামার 19

0

পিএইচপি 7, 98 + 1 95 + 1 84 + 1 বাইট

Arnauld´s উত্তর একটি গল্ফ বন্দর ।

for(;$c=ord($argn[$i]);$v|=$i++?$p>$k?2:$p<$k:0,$p=$k)$k=($c-58)*.32%10?:9;echo$v<3;

বড় হাতের অংশ গ্রহণ করে; মিথ্যা জন্য সত্য খালি আউটপুট 1

পাইপ হিসাবে চালান -nRবা এটি অনলাইনে চেষ্টা করুন

মূল পোস্ট:

for(;$c=$argn[$i++];$p?$a[]=$p<=>$k:0,$p=$k)$k=(ord($c)-58)/3.13-($c>Y)|0;echo min($a)*max($a)>=0;

0

সিজেম, 37 31 30 27 বাইট

q{_"SVZY"#g-i3/}%_$_W%](e=g

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

অবশ্যই কুৎসিত সংস্করণটি খাটো হওয়ার পরে শেষ হয় ...

q{        e# For each character in string...
_"SVZY"#g e# Get index of that character in "SVZY". Signum that. (returns 1 or 0 if inside string, -1 if not.)
-i3/      e# Subtract value from character (i.e 'Z' becomes 'Y', 'F' becomes 'G'). Convert to int. Integer divide by 3. (this is just how the math works out for proper mapping of characters to phone digits.)
}%
_$_W%]    e# Put mapped string, sorted version, and reverse sorted version in array.
(         e# Pop mapped string from array onto stack.
e=        e# Count occurences of mapped string in array.
g         e# Signum.

0

সি (জিসিসি) , 183 169 153 117 বাইট

#define a(b)(int)fmin(*(b c)/3.2,27)
d(char*c){int r=1,p=1;for(;1<strlen(c);)r&=a()<=a(1+),p&=a()>=a(++);return r|p;}

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

পুরানো সমাধান:

#define a(b)(int)((int)(b*.32-17.6)*.9)
d(char*c){int l=~-strlen(c),i=0,r=1,p=1;for(;i<l;++i)r&=a(c[i])<=a(c[i+1]),p&=a(c[l-i])<=a(c[l-i-1]);return r+p;}

8 টি বাইট সংরক্ষণ করা হয়েছে পাইপ্রেটবেকে ধন্যবাদ।

পুরানো পুরানো সমাধান:

d(char*c){char*a="22233344455566677778889999";int l=strlen(c)-1,i=0,r=1,p=1;for(;i<l;++i){if(a[c[i]-65]>a[c[i+1]-65])r=0;if(a[c[l-i]-65]>a[c[l-i-1]-65])p=0;}return r+p;}

পুরানো পুরানো পুরাতন সমাধান:

d(char*c){char*a="22233344455566677778889999";int l=strlen(c);int i,r=1,p=1;for(;i<l-1;++i)if(a[c[i]-65]>a[c[i+1]-65])r=0;for(i=l-1;i>0;--i)if(a[c[i]-65]>a[c[i-1]-65])p=0;return r+p;}

0

টিআই-বেসিক, 92 66 বাইট

ΔList(int(seq(inString("BC DEF GHI JKL MNO PQRSTUV WXYZ",sub(Ans,I,1))/4,I,1,length(Ans
0≤min(Ansmax(Ans

স্ট্রিংয়ের প্রতিটি চরিত্রকে 0 থেকে 7 পর্যন্ত পূর্ণসংখ্যায় রূপান্তর করে এবং প্রতিটি পরপর উপাদানটির মধ্যে পার্থক্য গ্রহণ করে; তারপরে ন্যূনতম এবং সর্বাধিক পার্থক্যের একই চিহ্ন রয়েছে কিনা তা পরীক্ষা করে (অথবা হয় 0 হয়)।


আমি মনে করি ΔList(int(4^-1seq(inString("DEF GHI JKL MNO PQRSTUV WXYZ",sub(Ans,I,1))+3,I,1,length(Ansএকটি বাইট সংরক্ষণ করে।
lirtosiast

0

Zsh , 73 69 57 বাইট

@ অ্যান্ডারস-কাসেরগের 3681/codeরূপান্তর ব্যবহার করে -12 বাইট

for c (${(s::)1})((y=3681/#c,A|=y<p,D|=p&&p<y,p=y,!D|!A))

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

আমরা কয়েকটি জিনিস অপব্যবহার করি:

  • ((statement,statement,...))পাটিগণিতের বহিঃপ্রকাশের ক্রম যা শেষ বিবৃতিটি শূন্য নয় যদি সত্যবাদী হয়।
  • একটি লুপের রিটার্ন মান হ'ল লুপের সর্বশেষ বিবৃতিটির রিটার্ন মান।
  • পাটিগণিত অপারেটর নজিরগুলি আমাদের কাছে বেশ সুন্দর ছিল, কারণ কোনও বন্ধনীগুলির মধ্যে কেবল একটি জোড়া ব্যবহার করা হয়নি। এর চেয়ে কম শক্তভাবে আবদ্ধ থাকলে একটি বাইট সংরক্ষণ করা যায় ।!&
  • আনসেট প্যারামিটারগুলি 0গাণিতিক বিস্তারে প্রসারিত হয় ।
  • আমরা কীপ্যাড নম্বরটিতে মানচিত্র তৈরি করতে যে ফাংশনটি ব্যবহার করি তা হ'ল CODE / 3.2 - 18(এর জন্য একটি বিশেষ কেস সহ Z), তবে যেহেতু আমাদের কেবল কোডগুলির মধ্যে পরিবর্তন প্রয়োজন তাই আমরা রৈখিক সামঞ্জস্য করি না।
for c (${(s::)1})           # split into characters
    (( y = #c-90 ? 0^(#c/3.2) : 27,   # this sets y to the keypad number + 18
       A |= y < p,          # set the A flag if we detect it is not ascending
       D |= p && p < y,     # ditto descending, don't compare on first iteration
       p = y,               # save the current character
       !D | !A              # return false if D and A are both set
    ))

সত্যবাদী / মিথ্যা মানগুলি অদলবদল করতে পারলে 2 বাইট সংরক্ষণ করা যায়।

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