বিশ্বের শেষ হয়


21

সরাসরি এসিএম শীতকালীন প্রোগ্রামিং প্রতিযোগিতা 2013 থেকে নেওয়া হয়েছে You আপনি এমন ব্যক্তি যিনি জিনিসকে আক্ষরিক অর্থে নিতে পছন্দ করেন। অতএব, আপনার জন্য, দুনিয়ার সমাপ্তি এড; "দ্য" এবং "ওয়ার্ল্ড" এর শেষ অক্ষরগুলি সম্মিলিত।

এমন একটি প্রোগ্রাম তৈরি করুন যা একটি বাক্য গ্রহণ করে, এবং প্রতিটি বাক্যটির সর্বশেষ বর্ণটি সেই বাক্যটিতে যথাসম্ভব অল্প জায়গায় (কম বাইট) আউটপুট দেয়। বর্ণগুলি বর্ণমালার অক্ষর ব্যতীত অন্য কোনও শব্দ দিয়ে পৃথক করা হয় (ASCII টেবিলের 65 - 90, 97 - 122) এর অর্থ আন্ডারস্কোর, টিল্ডস, কবর, কোঁকড়া ধনুর্বন্ধনী ইত্যাদি বিভাজক। প্রতিটি শব্দের মধ্যে একাধিক পৃথক থাকতে পারে।

asdf jkl;__zxcv~< vbnm,.qwer| |uiop-> flvmrp
pigs, eat dogs; eat Bob: eat pigs-> ststbts
looc si siht ,gnitirw esreveR-> citwR
99_bottles_of_beer_on_the_wall->sfrnel


আপনি অঙ্ক এবং আন্ডারস্কোর সহ একটি পরীক্ষার কেস যুক্ত করতে পারেন?
grc

10
পৃথিবীতে কি শেষ হয়? আমি জানতাম ভিম এবং ইমাক্স পরিমাপ করতে পারে না!
জো জে।

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

ইনপুটগুলি কি কেবল এএসসিআইআই হবে?
ফিল এইচ

উত্তর:


16

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

s/\pL*(\pL)|./$1/g

একটি -pকমান্ড লাইন সুইচ প্রয়োজন। নামের সম্পত্তিটি Lকেবলমাত্র অক্ষরের অক্ষরের সাথে মেলে A-Za-z। এখানে বেশ কয়েকটি শতাধিক নামযুক্ত সম্পত্তি রয়েছে তবে ASCII পাঠ্যের সাথে কাজ করার সময় তাদের মধ্যে খুব কমই আকর্ষণীয় হয়। তদ্ব্যতীত \pL, কোনও আসল নোটের মধ্যে কেবলমাত্র অন্য একটি \pP, যা বিরামচিহ্নের সাথে মেলে।

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


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

ডোম হেস্টিংসের একটি বাইট উন্নতি

print/\pL*(\pL)/g

প্রয়োজন -n(এবং -lএকাধিক ইনপুট সমর্থন করতে)।

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


নমুনা ব্যবহার

$ more in.dat
asdf jkl;__zxcv~< vbnm,.qwer| |uiop
pigs, eat dogs; eat Bob: eat pigs
looc si siht ,gnitirw esreveR
99_bottles_of_beer_on_the_wall

$ perl -p ends-in-ed.pl < in.dat
flvmrp
ststbts
citwR
sfrnel

আমি মনে করি \wএটিও অঙ্কগুলি এবং আন্ডারস্কোরগুলির সাথে মেলে।
grc

হুঁ, সত্যিই। এটি আপডেট করা প্রয়োজন।
প্রিমো

2
উজ্জ্বল। Regex একটি সুস্পষ্ট সমাধান |.ছিল , কিন্তু সুস্পষ্ট ছিল না (আমার কাছে, কমপক্ষে)।
পিটার টেলর

1
সবেমাত্র একটি লক্ষ করা -1গেছে print/\pL*(\pL)/g, আপনার পরীক্ষার ক্ষেত্রে একই ফলাফল পাওয়া যাচ্ছে!
ডম হেস্টিংস

18

এড, 35 টি অক্ষর

s/[a-zA-Z]*\([a-zA-Z]\)\|./\1/g
p
Q

সুতরাং, বিশ্বের শেষ এ শেষ হয়। যেহেতু আমি খুব আক্ষরিক হতে পছন্দ করি, আমি সমাধানটি এড দিয়ে লিখতে লিখতে সিদ্ধান্ত নিয়েছি - এবং সম্ভবত এটি একটি প্রোগ্রামিং ভাষা । এটি আশ্চর্যজনকভাবে সংক্ষিপ্ত, এমনকি অনেকগুলি সংক্ষিপ্ত সমাধান বিবেচনা করে এই থ্রেডটিতে ইতিমধ্যে বিদ্যমান। আমি আরও কিছু ব্যবহার করতে পারলে ভাল লাগবে[a-zA-Z] তবে এটি বেশ ভাল হবে তবে এড বিবেচনা করা কোনও প্রোগ্রামিং ভাষা নয়, এটি আসলে যথেষ্ট ভাল।

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

এখন ব্যাখ্যা জন্য। প্রথম লাইন পার্ল সমাধান ঠিক কী করে (ইউনিকোড অক্ষরের সমর্থন ব্যতীত) করে। আমি পার্ল সমাধানটি অনুলিপি করিনি, আমি কাকতালীয়ভাবে অনুরূপ কিছু আবিষ্কার করেছি।

দ্বিতীয় লাইনটি সর্বশেষ লাইনটি মুদ্রণ করে, যাতে আপনি আউটপুটটি দেখতে পান। তৃতীয় লাইনটি ছেড়ে দেয় - আমাকে এটি করতে হবে, অন্যথায় আপনি ফাইলটি সংরক্ষণ করেননি edএমনটি ?মনে করিয়ে দিতে মুদ্রণ করবে ।

এখন এটি কার্যকর করার জন্য। ঠিক আছে, এটা খুব সহজ। edআমার প্রোগ্রামটি পাইপ করার সময় টেস্ট কেসযুক্ত ফাইলটি দিয়ে চালান ।

ed -s testcase < program

-sনিরব। এটি edশুরুতে কুৎসিত ফাইলের আকার আউটপুট করা থেকে বাধা দেয় । সর্বোপরি, আমি এটিকে সম্পাদক হিসাবে স্ক্রিপ্ট হিসাবে ব্যবহার করি না, তাই আমার মেটাডেটার দরকার নেই। যদি আমি এটি না করি তবে এড ফাইলের আকারটি প্রদর্শন করবে যা আমি অন্যথায় প্রতিরোধ করতে পারি না।


আমি এটি চেষ্টা করার জন্য এড ইনস্টল করেছি।
primo

6

জাভাস্ক্রিপ্ট, 49

alert(prompt().replace(/.(?=[a-z])|[^a-z]/gi,''))

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

একটি সুন্দর উন্নতির জন্য টমসমেডিং ধন্যবাদ ।


3
আপনি সম্ভবত রেজেক্স কেস-সংবেদনশীল তৈরি করে alert(prompt().replace(/.(?=[a-z])|[^a-z]/gi,''))
এটির

6

সি, 78

Golfed:

main(int c,char**s){for(;c=*s[1]++;)isalpha(c)&&!isalpha(*s[1])?putchar(c):0;}

সাদা স্থান সহ:

main(int c,char**s)
{
  for(;c=*s[1]++;)
    isalpha(c)&&!isalpha(*s[1])?putchar(c):0;
}

আউটপুট:

এখানে চিত্র বর্ণনা লিখুন


1
আপনি cmain(c,s)char**s;{for
কেএন্ডআর

5

জিএনইউ শেড, 40 38 37

s/[a-z]\b/&\n/g; s/[^\n]*\(.\)\n/\1/g

পরীক্ষামূলক

cat << EOF > data.txt
asdf jkl;__zxcv~< vbnm,.qwer| |uiop
pigs, eat dogs; eat Bob: eat pigs
looc si siht ,gnitirw esreveR
EOF

রান চালা:

sed 's/[A-Za-z]\b/&\n/gi; s/[^\n]*\(.\)\n/\1/g' data.txt

আউটপুট:

flvmrp
ststbts
citwR

ব্যাখ্যা

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

সম্পাদন করা

  • কেস-সংবেদনশীল পতাকা ব্যবহার করুন (-2), ধন্যবাদ ম্যানটওয়ার্ক
  • শ্বেত স্পেস গণনা করবেন না (-1)।

sedএর sকমান্ড রয়েছে iমামলা অবশ মিলের জন্য পতাকা: s/[a-z]\b/&\n/gi
manatwork

@ মানাটওয়ার্ক: ভাল কথা, এটি এটি কেবল জিএনইউকে উপভোগ করবে, তবে মনে হয় এটি ইতিমধ্যে রয়েছে, ধন্যবাদ।
থোর

\b_এটিকে অক্ষর হিসাবে বিবেচনা করে , সুতরাং পরীক্ষার সাথে যদি শেষ হওয়া কোন শব্দটি শেষ হয় তবে _সেই শব্দের শেষ বর্ণটি আউটপুটটিতে অন্তর্ভুক্ত করা হয় না
মার্টি নিল

3

গ্রেপ এবং আটকান, 36 34 28

> echo 'asdf jkl;__zxcv~< vbnm,.qwer| |uiop' | grep -io '[a-z]\b' | tr -d \\n
flvmrp

> echo 'pigs, eat dogs; eat Bob: eat pigs'   | grep -io '[a-z]\b' | tr -d \\n
ststbts

echo 'looc si siht ,gnitirw esreveR'         | grep -io '[a-z]\b' | tr -d \\n
citwR

যদি একটি চূড়ান্ত নতুন লাইন প্রয়োজন হয়, tr -d \\nসঙ্গে প্রতিস্থাপন paste -sd ''

সম্পাদন করা

  • কেস-সংবেদনশীল গ্রেপ (-2) ব্যবহার করুন, ধন্যবাদ ম্যানটওয়ার্ক
  • (-4) এর trপরিবর্তে ব্যবহার করুন paste, ধন্যবাদ ম্যানটওয়ার্ক
  • পাইপের আশেপাশের সাদা স্থান গণনা করবেন না (-2)।

বেশ এটি সৃজনশীল paste -sd '', তবে tr -d \\nসংক্ষিপ্ত। সংক্রান্ত grep, এটা হয়েছে -iসুইচ অর্থ "যদি এড়িয়ে যান", যা এটি খাটো করতে পারেন: grep -io '[a-z]\b'
manatwork

@ মান্যাটওয়ার্ক, trচূড়ান্ত নতুন লাইনটিও মুছুন। কেস সংবেদনশীল মোড অবশ্যই খাটো, ধন্যবাদ।
থোর

চূড়ান্ত নতুন লাইনের প্রয়োজন নেই এমন কোনও নিয়ম নেই।
11:36

@ মান্যাটওয়ার্ক: আমি এটির সাথে একমত হতে পারি, আপডেট উত্তর।
থোর

3

সেড, 37 টি অক্ষর

থোরের উত্তরের সমান দৈর্ঘ্য , তবে আমি মনে করি, সহজ।

s/[a-z]*\([a-z]\)/\1/ig;s/[^a-z]*//ig

যুক্তিটি বেশ তুচ্ছ - শেষ অক্ষরের সাথে বর্ণের অনুক্রমগুলি প্রতিস্থাপন করুন, তারপরে সমস্ত অ-অক্ষর মুছুন।


3

গণিত, 39

""<>StringCases[#,(__~~x_)?LetterQ:>x]&

টেস্ট:

""<>StringCases[#,(__~~x_)?LetterQ:>x]& /@
 {"asdf jkl;__zxcv~< vbnm,.qwer| |uiop",
  "pigs, eat dogs; eat Bob: eat pigs",
  "looc si siht ,gnitirw esreveR",
  "99_bottles_of_beer_on_the_wall"}
{"flvmrp", "ststbts", "citwR", "sfrnel"}

ভাল একটা. LetterQকল করা উচিত LettersQ:) পুরো স্ট্রিং পরীক্ষার জন্য আমি এটির কথা ভাবি নি।
ড। বেলিসারিয়াস

@ বিলেসারিয়াস আসলে, এই নির্মাণের সাহায্যে এটি চরিত্র অনুসারে প্রয়োগ করা হয়, সুতরাং এটি আক্ষরিক "লেটারকিউ" হতে পারে এবং এখনও কাজ করতে পারে।
মিঃ উইজার্ড

2

কে, 49

{last'f@&"b"$#:'f:"|"\:@[x;&~x in,/.Q`a`A;:;"|"]}

k){last'f@&"b"$#:'f:"|"\:@[x;&~x in,/.Q`a`A;:;"|"]}"asdf jkl;__zxcv~< vbnm,.qwer| |uiop"
"flvmrp"
k){last'f@&"b"$#:'f:"|"\:@[x;&~x in,/.Q`a`A;:;"|"]}"pigs, eat dogs; eat Bob: eat pigs"
"ststbts"
k){last'f@&"b"$#:'f:"|"\:@[x;&~x in,/.Q`a`A;:;"|"]}"looc si siht ,gnitirw esreveR"
"citwR"

2

স্কালা, 59 (বা 43)

ইতিমধ্যে এতে স্ট্রিং ধরে নিচ্ছেন s:

s.split("[^a-zA-Z]+").map(_.last).mkString

আপনি যদি আরইপিএল আউটপুট ব্যবহার না করে প্রম্পট থেকে মুদ্রণ sকরতে চান তবে রূপান্তর করুন readLineএবং println()59 এর জন্য মোড়ক করুন।


2

x86: 54 বাইট

স্বাক্ষর সহ একটি সিডিকেল রুটিন অনুমান করুন void world_end(char *input, char *output):

60 8b 74 24 24 8b 7c 24 28 33 d2 8a 0e 8a c1 24
df 3c 41 72 08 3c 5a 77 04 8a d1 eb 09 84 d2 74
05 88 17 47 33 d2 46 84 c9 75 e0 84 d2 74 03 88
17 47 88 0f 61 c3

1
যাইহোক, আমি বুঝতে পারি যে প্রশ্নটি একটি রুটিন নয় একটি প্রোগ্রামের জন্য জিজ্ঞাসা করে , তবে আমি আলাদা কিছু করতে চেয়েছিলাম। সমস্যার বিবৃতিটির বিপরীতে, আমি অনুমান করি যে আমি সর্বোপরি "এমন ব্যক্তি নই যিনি জিনিসগুলিকে আক্ষরিকভাবে নিতে পছন্দ করেন"। : P: P
ব্যবহারকারী 1354557

2

শি, 32

println$ @{=>.-1}<>input re"\W+"

শিওর ভাষাটি এখনও তার বিটা পর্যায়ে রয়েছে তবে কোড গল্ফটির সাথে এটি বেশ ভালভাবে কাজ করছে বলে আমি মনে করেছি যে আমি আরও একটি সংক্ষিপ্ত এবং কার্যকরী সমাধান দেখাতে পারি (এবং ভাষাটি একটু বিজ্ঞাপন করুন :-))।


2

গণিত 62 57 52

Row@StringTake[StringCases[#,LetterCharacter..],-1]&

পরীক্ষামূলক

l = {"asdf jkl;__zxcv~<vbnm,.qwer| |uiop", 
     "pigs,eat dogs;eat Bob:eat pigs", 
     "looc si siht,gnitirw esreveR"}

Row@StringTake[StringCases[#,LetterCharacter..],-1]&/@ l
(*{flvmrp,ststbts,citwR}*)

আমি ভুল করে আপনার সম্পাদনা করেছি, কিন্তু এটি আবার ঘুরিয়ে। ওহো।
ডেভিডসি

2

পাইথন 3, 59 টি অক্ষর

import re;print(re.sub('.(?=[a-z])|[^a-z]','',input(),0,2))

সঠিকভাবে মূলধনী অক্ষর এবং আন্ডারস্কোরগুলি নিয়ে ডিল করে। 2 পাস হয় ব্যবহার ছাড়াই পতাকা ।re.subre.IGNORECASEre.I


2

পাইথন, 76 টি অক্ষর

import re;print "".join(re.findall("([a-zA-Z])(?=$|[^a-zA-Z])",raw_input()))


আপনি পরে স্থানটি মুছে ফেলতে পারেন print
ফ্লর্নকোয়াক

পাইথন 3 এ পোর্ট করে সংক্ষিপ্ত করুন: import re;print(*re.findall("([a-zA-Z])(?=$|[^a-zA-Z])",input()),sep='')
স্টিভেন রাম্বালস্কি

1

পাইথন 3.x, 64 বাইট

import re;print(''.join(a[-1] for a in re.split('\W+',input())))

2
শেষ উদাহরণটি কাজ করছে না। এছাড়াও, একটি ত্রুটি ঘটে যদি লাইনটি পৃথককারী দিয়ে শুরু হয় বা শেষ হয়
এএমকে

আপনি আগে স্থান সরাতে পারেন for
বাকুরিউ


1

গণিত 71 47 45 61

@ বিলেসারিয়াসের পরে অঙ্কন বোর্ডটিতে ফিরে কোডটিতে একটি ত্রুটি পাওয়া গেছে।

StringCases[#, RegularExpression["[A-Za-z](?![A-Za-z])"]] <> "" &

পরীক্ষামূলক

l = {"asdf jkl;__zxcv~<vbnm,.qwer| |uiop", "asdf jkl__zxcv~<vbnm,.qwer| |uiop", 
"pigs,eat dogs;eat Bob:eat pigs", "looc si siht,gnitirw esreveR"};

StringCases[#, RegularExpression["[A-Za-z](?![A-Za-z])"]] <> "" & /@ l

fl "flvmrp", "flvmrp", "ststbts", "citwR"}


\\wমিলছে _, সুতরাং এটি কাজ করে না (উদাহরণস্বরূপ)"asdf jkl__zxcv~<vbnm,.qwer| |uiop"
ডাঃ বেলিসারিয়াস

অপেক্ষা Row@StringTake[ StringCases[#, LetterCharacter ..], -1] &@"asdf jkl__zxcv~<vbnm,.qwer| |uiop"আমাকে দেয় flvmrp, কিন্তু এখানে #~StringCases~RegularExpression@"\\w\\b" <> "" &@"asdf jkl__zxcv~<vbnm,.qwer| |uiop"ফিরে fvmrp। আমরা কি একই ফলাফল পাচ্ছি ??
ডাঃ বেলিসারিয়াস

@ বিলেসারিয়াস আপনি আমার আগের সংস্করণে ত্রুটি সম্পর্কে ঠিক বলেছেন। আমি এটি ভুল স্ট্রিং দিয়ে পরীক্ষা করছিলাম!
ডেভিডসি


@ বিলেসারিয়াস ছেলেরা, দয়া করে আমার পোস্ট করা উত্তরটি দেখুন। যদি এটি সঠিক হয় তবে এটি খাটো।
মিঃ উইজার্ড

1

পাইথন 2, 88 80 75 69 68

s=p=''
for c in raw_input()+' ':a=c.isalpha();s+=p[a:];p=c*a
print s

ইনপুট: 435_ASDC__uio;|d re;fG o55677jkl..f

আউটপুট: CodeGolf


এই সমাধানটি সংক্ষিপ্ত করা যেতে পারে আপনি যদি আউটপুটটিকে শুরুতে ব্যাকস্পেস অক্ষর (এএসসিআইআই কোড 8) অন্তর্ভুক্ত করার অনুমতি দেন তবে 67 টি অক্ষরে । আউটপুট দৃশ্যত অভিন্ন হবে।

s=p='<BS>'
for c in raw_input()+p:a=c.isalpha();s+=p[a:];p=c*a
print s

একই ইনপুট, (দৃশ্যত) একই আউটপুট। <BS>ব্যাকস্পেস অক্ষর বোঝানো হয়।


1

সি শার্প

পদ্ধতি, 105 বাইট: (সিস্টেম, System.Text.RegularExpressions এবং System.Linq জন্য usings ধরে)

string R(string i){return string.Concat(Regex.Split(i,"[^a-zA-Z]").Where(x=>x!="").Select(n=>n.Last()));}

প্রোগ্রাম, 211 বাইট:

using System;using System.Text.RegularExpressions;using System.Linq;class A{static void Main(){Console.WriteLine(string.Concat(Regex.Split(Console.ReadLine(),"[^a-zA-Z]").Where(x=>x!="").Select(n=>n.Last())));}}

1

ভিবিএ, 147 161

Sub a(s)
For n=0 To 255:m=Chr(n):s=Replace(s,IIf(m Like"[A-Za-z]","",m)," "):Next
For Each r In Split(s," "):t=t & Right(r,1):Next
MsgBox t
End Sub

1

রুবি 2.0, 25 (+1) অক্ষর

gsub(/(\w+)\W*/){$1[-1]}

-pসুইচ দিয়ে চালানো আবশ্যক :

 $ ruby -p ed.rb <<< "asdf jkl;__zxcv~< vbnm,.qwer| |uiop"
flvmrp

দয়া করে rubyসংস্করণটি নির্দিষ্ট করুন । 1.9.2 আউটপুটগুলি "# <গণনা: 0x9f65e10> # <গণনা: 0x9f65d98> # <গণনা: 0x9f65d34> # <গণনা: 0x9f65cd0>"।
manatwork

তুমি ঠিক বলছো. আমি এটি সম্পূর্ণরূপে ভুলে গিয়েছিলাম যে আমি এটি ইনস্টল করেছি, তবে আমার বর্তমান রুবি সংস্করণটি 2.0 ( ruby 2.0.0p0 (2013-02-24 revision 39474)। ১.৮. version সংস্করণ সহ প্রোগ্রামটি চালনার সময় এটি একটি এসসিআইআই মান আউটপুট করে! জানতাম না যে সংস্করণগুলির মধ্যে এতগুলি পার্থক্য রয়েছে।
ডানিরো

ধন্যবাদ, অবশ্যই আমার রুবি আপডেট করতে হবে। (। উভয় ব্যাখ্যাকারী এবং জ্ঞান) দ্বিতীয় ক্যাপচারিং গ্রুপ প্রয়োজনীয় নয়: gsub(/(\w+)\W*/){$1[-1]}
manatwork

ওহ, অবশ্যই না। ধন্যবাদ, আপডেট হয়েছে :)
দানিরো



1

জাভা 8, 43 বাইট

s->s.replaceAll("(?i).(?=[a-z])|[^a-z]","")

@ Mbomb007 এর রেটিনা উত্তরের পোর্ট

ব্যাখ্যা:

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

s->  // Method with String as both parameter and return-type
  s.replaceAll("(?i).(?=[a-z])|[^a-z]","")
     //  Remove every match of this regex, and return as result

রেজেক্সের জন্য অতিরিক্ত ব্যাখ্যা:

"(?i).(?=[a-z])|[^a-z]"  // Main regex to match
 (?i)                    //  Case insensitive
     .                   //   Any character
      (?=[a-z])          //   Followed by a letter (as positive look-ahead)
               |[^a-z]   //   or a non-letter

""                       // Replace it with: nothing

1
এটা আসলে (?i)পতাকা জন্য।
Jakob

0

স্মলটক , চিঁ-চিঁ / Pharo গন্ধ
122 এই পদ্ধতি স্ট্রিং যোগ করা জন্য ঐতিহ্যগত ফর্ম্যাটিং সহ গৃহস্থালির কাজ:

endOfWords
    ^(self subStrings: (CharacterSet allCharacters select: #isLetter) complement) collect: #last as: String

রেগেক্স এবং অদ্ভুত বিন্যাস সহ ফারা 1.4 এ 62 টি অক্ষর

endOfWords^''join:(self regex:'[a-zA-Z]+'matchesCollect:#last)

0

জে: characters০ টি অক্ষর (বা কম সঠিক সংস্করণের জন্য 38 টি অক্ষর)

(#~e.&(,26&{.&(}.&a.)"0(97 65))){:&>;:]`(' '"_)@.(e.&'_:')"0

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

(#~e.&(,26&{.&(}.&a.)"0(97 65))){:&>;:

নমুনা রান:

    (#~e.&(,26&{.&(}.&a.)"0(97 65))){:&>;:]`(' '"_)@.(e.&'_:')"0'asdf jkl;__zxcv~< vbnm,.qwer| |uiop'
flvmrp
    (#~e.&(,26&{.&(}.&a.)"0(97 65))){:&>;:]`(' '"_)@.(e.&'_:')"0'pigs, eat dogs; eat Bob: eat pigs'
ststbts
    (#~e.&(,26&{.&(}.&a.)"0(97 65))){:&>;:]`(' '"_)@.(e.&'_:')"0'99_bottles_of_beer_on_the_wall'
sfrnel

1
38 বাইট (একটি সঠিক সংস্করণের জন্য): (#~[:2&|64 90 96 122&I.@(u:inv)){:&>;:, অথবা একটি অ স্পষ্ট সংস্করণের জন্য 43 বাইট: (#~[:2&|64 90 96 122&I.@(u:inv))@:({:@>)@;:। এটি ইন্টারভাল সূচক ক্রিয়া ব্যবহার করে I., যা 64 90 96 122অন্তরগুলির সেট হিসাবে ব্যাখ্যা করে (__, 64] (64, 90], (90, 96], (96, 122], (122, _)এবং ইটারওয়ালের সূচকটি প্রদান করে যার সাথে তার যুক্তি, চরের আসকি কোড অন্তর্ভুক্ত। যদি এই সূচকটি বিজোড় হয় তবে এটি বর্ণমালা নয়।
বোলস বুসিয়ের

@ বলসবুসিয়ার কোনও কারণে আন্ডারস্কোর (শেষ পরীক্ষার ক্ষেত্রে) নিয়ে কাজ করে না।
ফ্রাউনফ্রোগ

@ ফ্রাউনফ্র্যাগ আহ, আমি দেখছি কেন, ভেরিয়েবলের নামগুলিতে আন্ডারস্কোর থাকতে পারে বলে একটি শব্দ হিসাবে ;:ব্যাখ্যা করা abc_হয়। +10 যোগ করতে বাইট (#~~:&'_'), সম্ভবত একটি অদক্ষ ফিক্স
বোলস বুসিয়ের

@ বলসবুসিয়ার এটি ঠিক '_'-.~বা অনুরূপ কিছু।
ফ্রাউনফ্রোগ

0

এটি পিএইচপি-তে রয়েছে197 বাইট :( আমি শিক্ষানবিশ

$l=$_GET['line'];
$l=preg_replace('/(\W|_)+/',' ',$l);
$s=explode(' ',$l);
foreach($s as $d){
$a=substr($d,-1,1);
$o=ORD($a);
if(($o>=97 && $o<=122) || ($o>=65 && $o<=90)){
echo $a;
  }
}

সম্পাদনা করুন এখন 171 বাইট

<?$l=$_GET['l'];$l=preg_replace('/(\W|_)+/',' ',$l);$s=explode(' ',$l);foreach($s as $d){$a=substr($d,-1,1);$o=ORD($a);if(($o>=97&&$o<=122)||($o>=65&&$o<=90)){echo$a;}}

1
গল্ফের জন্য, আপনার যতদূর সম্ভব আপনার ভেরিয়েবলের নামগুলি খুব কম সময়ে একক অক্ষরে হ্রাস করা উচিত।
গাফি

1
এটি সম্পাদনা করেছেন me আমাকে বলার জন্য ধন্যবাদ। আমি এখানে নতুন।
সাসোরি

অবশ্যই। আপনি অতিরিক্ত কিছু পিএইচপি-নির্দিষ্ট সাহায্যের জন্যও এখানে দেখতে চাইতে পারেন।
গাফি

foreach((' ',preg_replace('/(\W|_)+/',' ',$_GET['line'])) as $d){$a=substr($d,-1,1);$o=ORD();if(($o>=97 && $o<=122) || ($o>=65 && $o<=90)){echo $a;}} 149 হয়, যদি এটি কাজ করে।
যাদু অক্টোপাস উরন

\W|_অঙ্কগুলি বাদ দেয়; সুতরাং আপনি \dআপনার regex বা ব্যবহার যুক্ত করা উচিত/[^a-z]+/i
তিতাস

0

কে 30

q)k)f:{x@&-1=-':(1_x," ")in,/.Q`a`A}
q)f "asdf jkl;__zxcv~< vbnm,.qwer| |uiop"
"flvmrp"
q)f "pigs, eat dogs; eat Bob: eat pigs"
"ststbts"
q)f "looc si siht ,gnitirw esreveR"
"citwR"
q)f "99_bottles_of_beer_on_the_wall"
"sfrnel"

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