আমার নামটি কি অফিসিয়াল?


25

ভূমিকা

টুনআলফ্রিংক যেমন বলেছেন : "আমার মনে হয় এখানে পর্যাপ্ত সহজ প্রশ্ন নেই যে নতুনরা চেষ্টা করতে পারেন!"! কাজটি খুব সহজ। একটি স্ট্রিং দেওয়া হয়েছে, নামটি অফিসিয়াল কিনা তা সত্য বা মিথ্যা মান আউটপুট করুন।

একটি নামটি "অফিসিয়াল" যদি এটি একটি একক শিরোনাম-কেস শব্দ হয়, তা হ'ল:

  • যদি প্রথম চিঠিটি মূলধন হয় (সরকারী নয় adnan)
  • অন্য অক্ষর যদি হয় না মূলধনী (অফিসিয়াল না: AdNaN)
  • নাম যদি না কোনো অ-বর্ণানুক্রমিক অক্ষর (অফিসিয়াল না: Adnan123, Adnan!)
  • নাম শুধু একটা শব্দ নিয়ে গঠিত থাকেন (অফিসিয়াল না: Adn an, Adn An)
  • যদি নামের একাধিক অক্ষর থাকে (অফিসিয়াল নয় A:)

বিধি

  • আপনি কোনও ফাংশন বা একটি প্রোগ্রাম সরবরাহ করতে পারেন
  • এটি , তাই সর্বনিম্ন পরিমাণ বাইটের সাথে জমাটি জয়!
  • দ্রষ্টব্য: জিনিসগুলি সহজ করার জন্য, মেরি-অ্যানের মতো নামগুলি এই চ্যালেঞ্জটিতে সরকারী নয়।
  • অনুমান করুন যে নামে কোনও নেতৃস্থানীয় শ্বেতস্থান নেই।
  • অনুমান করুন যে কেবল মুদ্রণযোগ্য ASCII অক্ষর ( 32-126) নামগুলিতে ব্যবহৃত হয়

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

Input: Adnan
Output: True

Input: adnan
Output: False

Input: AdnaN
Output: False

Input: Adnan123
Output: False

Input: Adnan Adnan
Output: False

Input: A
Output: False

Input: Mary-Ann
Output: False

লিডারবোর্ড


5
তাহলে কি আমার নাম অফিসিয়াল নয়? আমি আরও ভাল এটি পরিবর্তন করতে চাই।
ETH প্রোডাকশন

12
@ এথ প্রডাকশনগুলি যদি আমরা এই যুক্তিটি ব্যবহার করি তবে Lolololololololololololএটি একটি সরকারী নাম :)
আদনান

1
এটি আসলে প্রশ্নের উত্তর দেয় না। এটি কোনটি: "আপনি ধরে নিতে পারেন যে নামটিতে উচ্চারণযুক্ত অক্ষর নেই" বা "উচ্চারণযুক্ত বর্ণের নামগুলি পাওয়া উচিত False"?
লিন

1
কিছুটা কানাডিয়ান বিচ্যুতি হিসাবে, আমি জানি এমন একজন অধ্যাপক আপনার "অফিসিয়াল" মানদণ্ডে খুশি হবেন না: রবার্ট স্মিথ? । তাঁর নামটিতে আসলে সেই প্রশ্ন চিহ্ন রয়েছে । এছাড়াও, Sahaiʔa
Iwillnotexist আইডোনোটেক্সবাদ

1
@ ফারহানআনাম হ্যাঁ
আদনান

উত্তর:


6

পাইথ, 16 13 12 বাইট

টাইটলেজ সম্পর্কে আমাকে স্মরণ করিয়ে দেওয়ার জন্য @ থমাস কোওয়াকে ধন্যবাদ।

&qzr@GrzZ3tz

টেস্ট স্যুট

&              Boolean and operator
 qz            Equality test on input
  r    3       Titlecase operator
   @G          Setwise intersection with the alphabet
    rzZ        Input to lowercase
 tz            All but the first character of the input

21

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

^[A-Z][a-z]+$

অনলাইনে চেষ্টা করে দেখুন | টেস্ট স্যুট (আউটপুট 0মানে স্ট্রিংগুলির মধ্যে কোনওটিই মিলে না, যা প্রত্যাশিত।

যখন রেটিনা কেবলমাত্র একটি একক লাইনের কোডের সাথে সরবরাহ করা হয়, এটি এক্সপ্রেসটি ইনপুট স্ট্রিংয়ের সাথে মিলে যায় এমন সংখ্যার আউটপুট দেয়, সুতরাং 1এটি মেলে যদি এটি আউটপুট (সত্যবাদী) হয় এবং সুতরাং এটি একটি সরকারী নাম এবং 0(মিথ্যা) না হয় তবে।

ভাঙ্গন

^       The beginning of the string
[A-Z]   One uppercase letter
[a-z]+  One or more lowercase letters
$       The end of the string

8
দেখে মনে হচ্ছে অক্ষরের জন্য আমাদের চরিত্রের ক্লাস দরকার। ;)
মার্টিন এন্ডার

10

টিস্ক্রিপ্ট, 12 বাইট

xO`A-Z][a-z`

Oফাংশন আপত্তি ।

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

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

ব্যাখ্যা

Oফাংশন এই করে তোলে:

x O   `A-Z][a-z`
x.O(/^[A-Z][a-z]+$/)

তারপরে, ও ফাংশনটি পরীক্ষা করে দেখুন যে রেজেক্স ম্যাচ করে x


বিকল্পভাবে, একটি প্রতিদ্বন্দ্বিতামূলক টিস্ক্রিপ্ট answer টি উত্তর 7 টি বাইটে :

xO/\A\a

আহাহাহাহা, সুন্দর একটা। আমি যখন জাপট ইন্টারপ্রেটারে কাজ করছিলাম তখন isCharআপনি যুক্ত হওয়া ফাংশনটি দিয়ে আমি এই কৌশলটি ব্যবহার করেছি । তবে যারা জানেন না তাদের জন্য আপনি আরও বিশদে ব্যাখ্যা করতে চাইতে পারেন।
ETH প্রোডাকশনগুলি

ওওহোহ, আমি নতুন নতুন রেগেক্স বৈশিষ্ট্যগুলি পছন্দ করি!
ETH প্রোডাকশনস

7

জাভাস্ক্রিপ্ট (ES6), 26

n=>/^[A-Z][a-z]+$/.test(n)

লিখেছেন: এডসিসিস্টিফাইভ

f=n=>/^[A-Z][a-z]+$/.test(n)

console.log=x=>O.textContent+=x+'\n'

;['Adnan','adnan','AdnaN','Adnan123','Adnan Adnan','A','Mary-Ann']
.forEach(t=>console.log(t+' '+f(t)))
<pre id=O></pre>


হ্যাঁ, আপনি আমাকে এটি মারধর। আপনি আমার সংস্করণটি 5 বাইট দ্বারা ছাপিয়েছেন।
সুপারজেডি

1
এক বাইট কম:n=>n.match`^[A-Z][a-z]+$`
ব্যবহারকারী 81655

সত্যরূপী মান হিসাবে @ ব্যবহারকারী 81655 একটি অ্যারে খুব জোর করা
IMHO

@ edc65 এটি বৈধ যদিও।
সুপারজেডি

1
আরও মাত্র 4 বাইটের জন্য আপনি ইএস 5 সম্মতি পান:/./.test.bind(/^[A-Z][a-z]+$/)
সিআর ড্রস্ট

7

পাইথন, 59 58 বাইট

আমি নিশ্চিত যে রেটিনা সংস্করণটি পরাজিত করার কোনও আসল উপায় নেই, কারণ এটি পাইথনের মধ্যে মূলত এটি। তবে আমি মনে করি এটি আমার প্রথম জমা;)

import re,sys;print(re.match('[A-Z][a-z]+$',sys.argv[1]))

এটি একটি অত্যন্ত বিজোড় সত্যবাদী মূল্য:

(test2)wayne@arglefraster ~/programming/inactive/golf/67554
⚘ python golf.py AdNan                                                                                                 $? 148  %# 3  10:06:36
None
(test2)wayne@arglefraster ~/programming/inactive/golf/67554
⚘ python golf.py Adnan                                                                                                         %# 3  10:06:40
<_sre.SRE_Match object at 0x7feefea7f440>
(test2)wayne@arglefraster ~/programming/inactive/golf/67554
⚘ python golf.py "Adnan Banana"                                                                                                %# 3  10:06:47
None

(এবং এটি ""শেল দিয়ে পাস করা হলে এটিতে ফাঁকা স্থানগুলির সাথে প্রায় স্ট্রিংগুলির প্রয়োজন হয়)


1
^re.match()স্ট্রিংয়ের শুরুতে কেবল ম্যাচ হিসাবে প্রয়োজন হয় না ।
manatwork

1
@ মান্যাটওয়ার্ক সুন্দর! আরেকটি বাইট শেভড :) আমি পাইথন 2 ব্যবহার করে বন্ধ প্যারেনের সাথে আরেকটি বাইট সংরক্ষণ করতে পারি
ওয়েন ওয়ার্নার

1
@ ওয়াইনওয়ার্নার: এজন্য আপনার পাইথন সংস্করণ দেওয়া উচিত :) আমি মনে করি পাইথন 2 এবং পাইথন 3 কমপক্ষে কোডগল্ফের জন্য বিভিন্ন ধরণের ভাষা।
মুভিটিকা

আপনি যদি পুরো প্রোগ্রামের পরিবর্তে বেনামে ল্যাম্বডা ব্যবহার করেন তবে 45 বাইট পাবেন:lambda s:re.match('[A-Z][a-z]+$',s) import re
মোভ্যাটিকা

1
ওগো, উফফফফ!
মিল্কিওয়ে 90


4

পাইথন, 50 45 43 41 বাইট

lambda s:s.isalpha()*s.istitle()*len(s)>1

রিটার্নস Trueএটা একটি সরকারী নাম অথবা যদি Falseএটা না পারেন।


কোডগল্ফের বিধিগুলি, আপনাকে f=দুটি বাইট সংরক্ষণ করে অ্যাকাউন্টটি গ্রহণ করার দরকার নেই । এছাড়াও, (len(s)>1)5 বাইট ওভার সাশ্রয় করে s[1:].islower()। :)
মোভাটিকা

3

বোটেঞ্জাইন , 203 180 29x6 = 174

v ABCDEFGHIJKLMNOPQRSTUVWXYZ
>ISSSSSSSSSSSSSSSSSSSSSSSSSSF
v <<<<<<<<<<<<<<<<<<<<<<<<<<
 Tabcdefghijklmnopqrstuvwxyz
> SSSSSSSSSSSSSSSSSSSSSSSSSSF
^E<<<<<<<<<<<<<<<<<<<<<<<<<<

বড় হাতের অক্ষর এবং ছোট হাতের অক্ষর সনাক্ত করার জন্য আমার সত্যই বিল্টিন যুক্ত করা উচিত। প্রতিটি চিঠি স্বতন্ত্রভাবে পরীক্ষা করার চেয়ে এটি অনেক বেশি সংক্ষিপ্ত হবে।

রুক্ষ অনুবাদ:

for a of input enqueue a
if ABCDEFGHIJKLMNOPQRSTUVWXYZ contains first
 remove first
 while abcdefghijklmnopqrstuvwxyz contains first
  remove first
 if empty
  yield TRUE exit
 else
  yield FALSE exit
else
 yield FALSE exit

3

সি, 129 122 121 111 বাইট

main(c,b,d){b=d=0;while((c=getchar())>13)b|=b|=!b&&c>90|c<65?1:2&&d++&&c<97|c>122?4:2;printf("%d\n",b<3&&d>1);}

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

main(c,b,d)
{
    b=d=0;
    while((c=getchar())>13)
    {
        // Twiddle bits, 1<<0 for first character and 1<<3 for subsequent
        b|=!b&&c>90|c<65?1:2; // check first character is valid
        b|=d++&&c<97|c>122?4:2; // check later characters are valid
    }
    // If all OK b == 2, if either of above are wrong, b >= 3 due to 
    // extra bits. Also, d should be > 1 for name length to be valid.
    printf("%d\n",b<3&&d>1);
}


2

এমএটিএল , 18 বাইট

ভাষার বর্তমান সংস্করণ ( 4.0.0 ) ব্যবহৃত হয়েছে।

এটি নিনজা বিয়ারমনকের জবাবের মতো একই নিয়মিত অভিব্যক্তি প্রয়োগ করে :

j'^[A-Z][a-z]+$'XX

আউটপুটটি স্ট্রিং (যা সত্যবাদী ) যদি এটি একটি সরকারী নাম, এবং কিছুই (যা মিথ্যা হয়) is ) যদি তা না হয়।

উদাহরণ

>> matl
 > j'^[A-Z][a-z]+$'XX
 > 
> December
December
>> 

>> matl
 > j'^[A-Z][a-z]+$'XX
 > 
> ASCII
>> 



2

রুবি, 28 বাইট

p (gets=~/^[A-Z][a-z]+$/)!=p

-২ বাইট (ম্যানটওয়ার্কের জন্য ধন্যবাদ)



সহজ এবং খাটো: p !!gets[/^[A-Z][a-z]+$/]
ড্যানিরো

2

আইএ -32 মেশিন কোড, 19 বাইট

একটি ফাংশন যা পয়েন্টারটি নাল-টার্মিনেটিং স্ট্রিংয়ের মধ্যে পায় ecxএবং 0 বা 1 ইন eax( fastcallকনভেনশন অনুসারে ) প্রদান করে।

কোডের হেক্সডাম্প:

6a 20 58 32 01 74 0a 41 2c 61 3c 1a b0 00 72 f3 c3 40 c3

সমাবেশ ভাষায়:

    push 32;
    pop eax;

myloop:
    xor al, [ecx];
    jz yes;
    inc ecx;
    sub al, 'a';
    cmp al, 26;
    mov al, 0;
    jb myloop;
    ret;

yes:
    inc eax;
    ret;

ইনপুট নামের প্রথম বাইটটিতে এটি মূলধন কেস থেকে ছোট ক্ষেত্রে রূপান্তর করতে তার 5 তম বিট উল্টে ( xorসাথে 32) থাকে। eax3 টি বাইট কোড ব্যবহার করে এটি 32 এ লোড করে:

    push 32;
    pop eax;

বাইটটি একটি ছোট চিঠি কিনা তা যাচাই করার জন্য:

    sub al, 'a';
    cmp al, 26;
    jb myloop;

যদি তা না হয় তবে এই কোডটি পড়ে। alএক্ষেত্রে 0 ফিরিয়ে আনার জন্য , এটি শর্তসাপূর্ণ লাফ দেওয়ার আগে 0 রাখে :

    sub al, 'a';
    cmp al, 26;
    mov al, 0;
    jb myloop;

0 alইনপুট নামের নিম্নলিখিত বাইটগুলির জন্য একটি জোর-মাস্ক (বা এটির অনুপস্থিতি) হিসাবেও কাজ করে।

একটি সফল প্রস্থান যখন এটি একটি শূন্য বাইটের মুখোমুখি হয়, যা পরে শূন্য থাকে xor:

    xor al, [ecx];
    jz yes;

এটি ধরে নেওয়া হয় যে ইনপুট নামটি খালি নয়। আমি অনুমান করি এটি একটি নাম সম্পর্কে একটি যুক্তিসঙ্গত ধারনা (একটি স্বেচ্ছাসেবী স্ট্রিং নয়)!


2

grep, 16 বাইট

এই নিদর্শন:

[A-Z][a-z]+

যদি আপনি ব্যবহার -Eএবং -xএবং -cসুইচ grepম্যাচিং ইনপুট লাইনের একটি গণনা প্রিন্ট করবে। সুতরাং আপনি যদি এটির একটি লাইন দেন তবে আপনি 1 বা একটি 0 পাবেন I আমি মনে করি যে এই জায়গাটি কীভাবে কাজ করে।

প্যাটার্ন 11 অক্ষর আছে, পুরো কমান্ড লাইন 23 আমি দেখেছি মানুষ ব্যবহার sedকমান্ড ছাড়াই স্ক্রিপ্ট তাই আমি কি কি জানি না। তবে এটি স্টিডিন পড়ে এবং তাই আপনি এটি টাইপ করতে পারেন। এখানে echo:

for a in Adnan adnan Ad\ nan
do  echo "$a" | grep -cxE \[A-Z]\[a-z]+
done

1
0
0

@ ডুরকনব - আমার কাছে যথেষ্ট ন্যায্য বলে মনে হচ্ছে। অনেক ধন্যবাদ. আপনি কোন টুপি অনুমান করেছেন?
মাইকজার্ভ

1
আমি হেয়ারবোটের প্রতিশোধ নিয়েছি। : পি
ডুরকনব

আমাকে থামান যদি (যেমন যথেষ্ট সম্ভাব্য) আমি ভুল তবে আপনি ব্যবহার করতে পারেন grep -Excতাই আপনাকে সুইচের জন্য বেশি বাইট গণনা করার দরকার নেই।
নিল

@ নীল - আপনি ভুল হলে আমি জানি না। আমার সত্যিই কোনও ধারণা নেই - সম্পাদনার ইতিহাসটি একবার দেখুন।
মাইকজার্ভ

2

গণিত 10.1, 46 বাইট

LetterQ@#&&#==ToCamelCase@#&&StringLength@#>1&

স্ট্যান্ডার্ড রেজেক্স সমাধানের চেয়ে কম বাইট ব্যবহার করে। এটি তিনটি চেক করে। LetterQ@#স্ট্রিংটি সম্পূর্ণরূপে অক্ষর দ্বারা গঠিত এবং StringLength@#>1একক-বর্ণের স্ট্রিংগুলি অবৈধ করে তোলে তা নিশ্চিত করে। #==ToCamelCase@#যাইহোক, কম জ্ঞান করে। ToCamelCaseআমি একটি অননুমোদিত ফাংশন এটি পেয়েছি যা একটি ইনপুট স্ট্রিং AndOutputsItLikeThis লাগে। যেহেতু কেবলমাত্র একটি শব্দ আছে, এটি প্রথম অক্ষরকে মূলধন করবে, তাই আমরা স্ট্রিংটি এর সাথে সমান কিনা তা পরীক্ষা করে দেখি।


ToCamelCase10.3 এ নতুন? 10.2.2 এ কাজ করছে বলে মনে হচ্ছে না।
মার্ফ

@ মুরফি, এটি আমার জন্য 10.1। আপনি কি সঙ্গে পেতে ToCamelCase["foo bar baz"]?
LegionMammal978

ঠিক আছে, আমি নিশ্চিত করতে পারি যে এটি 10.1-এ কাজ করে। যাইহোক, 8.0, 9.0, 10.0 এবং 10.2 এ ফাংশনটি সংজ্ঞায়িত করা হয়নি (আপনার পরীক্ষার কেসটি রিটার্ন করে ToCamelCase[foo bar baz])। স্ট্রেঞ্জ! হয়তো কেউ 10.3 পরীক্ষা করতে পারে?
25:55

2

bash / zsh / ksh, 25 বাইট

[[ $1 =~ ^[A-Z][a-z]+$ ]]

প্রকৃতপক্ষে এটি ব্যবহার করতে এটির সাথে একমাত্র লাইন হিসাবে একটি ফাইল তৈরি করুন এবং ফাইলটিকে সম্পাদনযোগ্য করে তুলুন; পরিচিত বাইনারি টাইপ হিসাবে স্বীকৃত এক্সিকিউটেবল ফাইলগুলি শেল স্ক্রিপ্ট হিসাবে বিবেচিত হয় ( /bin/shবিশেষভাবে)।

$ printf '[[ $1 =~ ^[A-Z][a-z]+$ ]]' >f
$ chmod +x f
$ wc -c f
25 f
$ for x in 'Adnan' 'adnan' 'AdnaN' 'Adnan123' 'Adnan Adnan' 'A' 'Mary-Ann'; do f "$x" && echo 1 || echo 0; done
1
0
0
0
0
0
0
$ 

2
এই কাজ করে জরিমানা bash, kshএবং zsh, কিন্তু মান POSIX কাজ পাওয়ার কোনো সম্ভাবনা থাকে shবা সামঞ্জস্যপূর্ণ dashএবং yash। বিভ্রান্তি এড়াতে, আমি উত্তরের শিরোনাম পরিবর্তন করার পরামর্শ দিই।
manatwork

3
ফাইলটি তৈরি করার printfপরিবর্তে ব্যবহার echoকরুন এবং আপনি 25 বাইট পাবেন।
সাম হোচেভার

আপনি উভয় ভাল পয়েন্ট; উভয় প্রয়োগ।
অ্যারন ডেভিস 17

2

সি # 4, 89 বাইট

কোড গল্ফে আমার প্রথম প্রচেষ্টা। এটা এসে গেছে:

bool o(string i){return System.Text.RegularExpressions.Regex.IsMatch(i,"^[A-Z][a-z]+$");}

ডট নেট ফিডল এ এটি কর্ম হিসাবে দেখুন ।


আপনি যদি সি # 6 ব্যবহার করেন তবে আপনি এটি কিছুটা খাটো করতে পারেন:bool o(string i)=>System.Text.RegularExpressions.Regex.IsMatch(i,"^[A-Z][a-z]+$");
প্রোগ্রামফক্স ২X

2

জাভা, 28 বাইট

n->n.matches("[A-Z][a-z]+")

স্ট্রিংয়ে একটি বড় হাতের অক্ষর অন্তত একটি ছোট ছোট অক্ষর অনুসরণ করে তা নিশ্চিত করার জন্য রেজেক্স ব্যবহার করে।

-1 বাইট ধন্যবাদ বেনজামিন আরউখার্টকে


আপনি সেমিকোলনটি ফেলে দিতে পারেন
বেনজমিন উরখার্ট


1

k4, 39 বাইট

{((*x)in .Q.A)&(&/(1_,/x)in .Q.a)&1<#x}

প্রথম চরটি উপরের, অন্য সমস্ত কম, একের চেয়ে বড় গণনা।

উদাহরণ:

  {((*x)in .Q.A)&(&/(1_,/x)in .Q.a)&1<#x}'("Adnan";"adnan";"AdnaN";"Adnan123";"Adnan Adnan";"A";"Mary-Ann")
1000000b

1

গুরুতরভাবে, 16 বাইট

ú4,nÿ=)l1<)ù-Y&&

হেক্স ডাম্প:

a3342c6e983d296c313c29972d592626

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

মারাত্মকভাবে এখনও রেজেক্স সমর্থন নেই, তাই আমরা সবচেয়ে ভাল করতে পারি:

 4,n                               Push 4 copies of input
    ÿ=                             Check that it's equal to itself converted to titlecase
      )                            Put the boolean on the bottom
       l1<                         Check that it's longer than 1 character
          )                        Put the boolean on the bottom
           ù                       Convert it to lowercase.
ú           -Y                     Check that removing the lowercase alphabet empties it
              &&                   And all the booleans together

1

ওকামল, 231 216 197 166 বাইট

let f n=let l=String.length n in if l=1 then 0 else let rec e=function 0->1|i->match n.[i] with('a'..'z')->e(i - 1)|_->0 in match n.[0]with('A'..'Z')->e(l - 1)|_->0;;

ব্যবহারের উদাহরণ:

# f "Adnan";;
- : int = 1

# f "adnan";;
- : int = 0

# f "AdnaN";;
- : int = 0

# f "Adnan123";;
- : int = 0

# f "Adnan Adnan";;
- : int = 0

# f "A";;
- : int = 0

# f "Mary-Ann";;
- : int = 0

অবহেলিত (আসল ফাংশন নাম সহ):

let is_name name =
  let len = String.length name
  in if len = 1 then 0 else
  let rec explode_lower = function
    | 0 -> 1
    | i ->
      match name.[i] with
      | ('a'..'z') -> explode_lower (i - 1)
      | _ -> 0
  in match name.[0] with
  | ('A'..'Z') -> explode_lower (len - 1)
  | _ -> 0;;

আপনি পূর্ণসংখ্যার পরিবর্তে বুলিয়ান ব্যবহার করে (ব্লহ!) এবং সেইগুলি বড় if … then 0 else দ্বারা প্রতিস্থাপন করে আপনি প্রায় 10% সংরক্ষণ করতে পারেন … ||। এবং সে ক্ষেত্রে বুলিয়ান অপারেটরগুলির পরিবর্তে matchএবং ব্যাপ্তিগুলি ব্যবহার করে উদাহরণস্বরূপn.[0]>'@'&n.[0]<'['&e(l-1)
গিলস 'অশুভ হওয়া বন্ধ করুন'

1

স্পেসবিএএস - 39 বাইট

স্পেসবিএএস MATCHকমান্ডের মাধ্যমে নিয়মিত অভিব্যক্তি পরিচালনা করে । মিথ্যা জন্য আউটপুট 0 এবং সত্য হলে 1 হয়।

1 input n$:  ?MATCH("^[A-Z][a-z]+$",n$)

1

সুইফট 2, 116 বাইট

রিজেক্স সুইফটে এতটাই ভার্বোজ যে এটি করা অনেক ছোট

func e(s:String)->Int{var c=0;for k in s.utf8{if(c==0 ?k<65||k>90:k<97||k>122){return 0};c++};return s.utf8.count-1}

এই ফিরে আসবে 0বা -1নন-অফিশিয়াল নাম (কোন ইনপুট ক্ষেত্রে), এবং একটি সংখ্যা > 0(যা স্ট্রিং এর দৈর্ঘ্য সমান - 1) যদি নাম কর্মকর্তা

Ungolfed

func e(s: String) -> Int{
    var c = 0
    for k in s.utf8{
        if(c == 0 ? k < 65 || k > 90 : k < 97 || k > 122){
            return 0
        }
        c++
    }
    return s.utf8.count - 1
}

1

সি #, 188 বাইট

এটিকে মোকাবেলার জন্য নিয়মিত মত প্রকাশের সঠিক উপায় হতে পারে তবে এটি ব্যতীত এখানে চেষ্টা করা হয়েছে।

bool O(string s){for(int i=1;i<s.Length;i++){if(char.IsUpper(s[i])){return false;}}if(char.IsUpper(s[0])&&s.All(Char.IsLetter)&&!s.Contains(" ")&& s.Length > 1){return true;}return false;}

longhand

static bool O(string s)
{
    for (int i = 1; i < s.Length; i++)
    {
        if (char.IsUpper(s[i]) )
        {
            return false;
        }
    }
    if (char.IsUpper(s[0]) && s.All(Char.IsLetter) && !s.Contains(" ") && s.Length > 1)
    {
        return true;
    }
    return false;
}

কীভাবে ছোট হাতের চেকটি সংক্ষিপ্ত করা যায়, সম্ভবত লুপ ছাড়াই পরামর্শ পছন্দ করবেন। আমি সবেমাত্র ভাষা শিখতে শুরু করেছি এবং এটি অনুশীলন হিসাবে ব্যবহার করেছি, ভেবেছিলাম যে আমি আমার ফলাফলটি যেভাবেই ভাগ করে নেব।





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