কিওয়ার্টি কীবোর্ডের একক সারি ব্যবহার করে দীর্ঘতম শব্দ


30

কিওয়ার্টি কীবোর্ডের তিনটি সারি হ'ল qwertyuiop, asdfghjklএবং zxcvbnm। আপনার কাজটি হ'ল দীর্ঘ শব্দটি খুঁজে বার করা যা শব্দটি প্রদত্ত শব্দের তালিকা থেকে কীবোর্ডের কেবল একটি সারি ব্যবহার করে টাইপ করা যায়।

নমুনা ইনপুট 1

artist
home
gas
writer
geology
marine
twerp

আউটপুট

writer

(প্রদত্ত শব্দের, শুধুমাত্র gas, writerএবং twerpএকটি একক সারি ব্যবহার করে লেখা যাবে না, এবং writerদীর্ঘতম হয়)

শব্দগুলি প্রকৃত শব্দ নাও হতে পারে (সুতরাং তৃতীয় সারিকে অবৈধ বলে ধরে নিবেন না)। যাইহোক, আপনি ধরে নিতে পারেন যে সর্বদা সঠিক উত্তর হবে (আর নেই, কম হবে না)।

নমুনা ইনপুট 2

wrhuji
bxnzmmx
gllwssjjd
vnccbb
lrkjhgfdsa
tttttt

আউটপুট

bxnzmmx

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


@ মার্টিনব্যাটনার আমি সত্যিই দেখতে চাই যে এটি কীভাবে রেটিনার সাথে সমাধান করা যায়। আপনি কি মনে করেন এটি সহজেই হয়ে গেছে?
জেরি যেরেমিয়া

ইনপুট শব্দগুলি সর্বদা ছোট হাতের অক্ষরে থাকে?
নিমি

@ নিমিমি হ্যাঁ, তারা।
ভূত_স_ই_কোড

@ঘোস্ট_ইন_থ_ কোডটি আপনার উল্লেখ করা উচিত যে স্পষ্টতার চ্যালেঞ্জের মধ্যে
লুইস মেন্ডো

6
প্রাসঙ্গিক xkcd: কি-if.xkcd.com/75
জন ডিভোরাক

উত্তর:


18

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

lambda l:max(l,key=lambda w:(-len({"asdfghjklzxcvbnm".find(c)/9for c in w}),len(w)))

অনুসন্ধান করে maxইনপুটের, তারপর বৃদ্ধি দৈর্ঘ্য, দৃশ্যও কম কীবোর্ড সারি দ্বারা তুলনা। কীবোর্ড সারি মানটি "asdfghjklzxcvbnm".find(c)/9এর মধ্য দিয়ে নেওয়া হয় , যা মধ্য সারিটিকে 0নীচে সারিতে নিয়ে যায় 1এবং উপরের সারিটি বাদ দেওয়া হয় -1, যেহেতু অনুপস্থিত মানগুলির জন্য findদেয় -1

অন্যান্য প্রচেষ্টা:

lambda l:max((-len({"asdfghjklzxcvbnm".find(c)/9for c in w}),len(w),w)for w in l)[2]
lambda l:max(l,key=lambda w:len(w)-1./len({"asdfghjklzxcvbnm".find(c)/9for c in w}))
lambda l:max([w for w in l if len({"asdfghjklzxcvbnm".find(c)/9for c in w})<2],key=len)

1
/পাইথন 3 এর জন্য আরও 1 টি চরিত্র;)
অ্যান্টি হাপাল

6
আমি জানি না যে ব্যাকরণটি কোনও 9for
শ্বেত স্পেসের জন্য

এটি এখন পর্যন্ত আমার প্রিয় উত্তর।
এসবিআই


@wnnmaw পাইথনের নতুন সংস্করণগুলির ক্ষেত্রে এটি আর সত্য 4if 0else 2নয় , উদাহরণস্বরূপ ২.7.১১ এবং ৩.৫.১ (এবং সম্ভবত এটি কয়েকটি সংস্করণের জন্য বৈধ হয়েছে)
স্পেঞ্জ Mar০০

13

জাপট, 32 30 বাইট

;Uf_¬£DbXu)f10Ãä¥ eÃn@Yl -XlÃg

এটি অনলাইন পরীক্ষা! ইনপুট স্ট্রিংগুলির একটি অ্যারে।

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

;Uf_  ¬ £  DbXu)f10Ã ä¥  eà n@  Yl -Xlà g
;UfZ{Zq mX{DbXu)f10} ä== e} nXY{Yl -Xl} g

         // Implicit: U = input array of strings
;        // Reset variables A-L to various values.
         // D is set to the string "QWERTYUIOP\nASDFGHJKL\nZXCVBNM".
UfZ{   } // Take U and filter to only the items Z that return truthily to this function:
Zq       //  Split Z into chars, then
mX{    } //  map each char X by this function:
DbXu)    //   Return D.indexOf(X.toUpperCase()),
f10      //   floored to a multiple of 10.
         //  This maps each char to 0 for the top row, 10 for the middle, 20 for the bottom.
q ä==    //  Split the resulting string into chars and check each pair for equality.
e        //  Check that every item in the result is truthy. This returns true if all chars
         //  are on the same row; false otherwise.
         // Now we have only the words that are entirely on one row.
nXY{   } // Sort by passing each two args X and Y into this function:
Yl -Xl   //  Return Y.length - X.length. Sorts the longest to the front.
g        // Get the first item in the resulting array. Implicitly output.

8
ওহ, তুমি কি ডেনিসকে ছাড়িয়েছ?
মরগান থ্রাপ

1
এটি হারাতে শক্ত হতে চলেছে
আদনান

2
আপনার কি "QWERTYUIOP\nASDFGHJKL\nZXCVBNM"এএ পূর্বনির্ধারিত আক্ষরিক আছে? ভাল খেলেছে :-)
লুইস মেন্ডো

1
সেটাকে Dসেট করা আছে যেখানে এটি নির্ধারণ করা হয়েছে তা আমি খুঁজে পাচ্ছি না QWERTYUIOP\nASDFGHJKL\nZXCVBNM, এমনকি আপনি যে পৃষ্ঠার উল্লেখ করেছেন Variables <...> D 13
তাতেও এমন বক্তব্য লেখা হয়েছে

1
;প্রোগ্রামটির শুরুতে @ সুখমেল এ A-Lবিভিন্ন ভ্যারিয়েবলগুলিকে পুনরায় সেট করে । Dকীবোর্ড স্ট্রিং সেট করা হয়। আপনি এখানে আরও তথ্য পেতে পারেন ।
ইটিএইচ প্রডাকশনস

11

পাইথন 2.5+ এবং 3, 93 বাইট

এই পদ্ধতির জন্য কত স্ট্রোক পরীক্ষা করতে হয়েছিল; এটি এই সত্যটি ব্যবহার করে যে a.strip(b)খালি স্ট্রিংয়ের ফলাফল aকেবলমাত্র খ-এর মধ্যে বর্ণিত অক্ষর সমন্বিত থাকে।

ফাংশনটি স্ট্রিংয়ের তালিকা নেয় এবং একটি স্ট্রিং দেয়।

lambda a:max(a,key=lambda x:(~all(map(x.strip,['qwertyuiop','asdfghjkl','zxcvbnm'])),len(x)))

5
পিপিসিজিতে আপনাকে স্বাগতম, প্রথম প্রথম পোস্ট :)
FryAmTheEggman

কেন keyসেখানে পরিবর্তনশীল? আমি মনে করি আপনি এটি মুছে ফেলতে পারেন।
ক্যালকুলেটরফলাইন

পুনঃটুইট করুন keyআর্গুমেন্ট maxফাংশন শব্দ শুধুমাত্র হয়।
আন্তি হাপাল

আচ্ছা, আমি কোয়ার্গসের কথা ভুলে গেছি।
ক্যালকুলেটরফলাইন

8

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

G`^([eio-rtuwy]+|[adfghjkls]+|[bcmnvxz]+)$
1!`(.)+(?!\D+(?<-1>.)+(?(1)!))

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

উপসংহার: রেটিনা একটি বাছাই পর্যায় প্রয়োজন।

ব্যাখ্যা

G`^([eio-rtuwy]+|[adfghjkls]+|[bcmnvxz]+)$

এটি একটি গ্রেপ পর্যায়: এটি কেবল রেখা রাখে যা রেজেক্সের সাথে মিলে যায়। অর্থাত্ সেগুলি যা চরিত্র শ্রেণীর একটি থেকে একচেটিয়াভাবে গঠিত হয়।

1!`(.)+(?!\D+(?<-1>.)+(?(1)!))

এখন আমাদের কেবলমাত্র বাকি স্ট্রিংগুলির সন্ধান করতে হবে। আমরা এটি সমস্ত শব্দের সাথে মিল রেখে এটি করি যা তার পরে থাকা সমস্ত শব্দের চেয়ে কমপক্ষে দীর্ঘ। 1রেটিনা (দুই দিন আগে প্রকাশিত), যা শুধুমাত্র প্রথম ম্যাচ বিবেচনায় এই ম্যাচ পর্যায় সীমিত করার জন্য একটি নতুন সংযোজন। এবং !রেটিনাকে ম্যাচটি মুদ্রণের নির্দেশ দেয় (এটি গণনা করার পরিবর্তে)।


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

@ দাভকো স্ব-প্রচারের জন্য দুঃখিত, তবে আপনি কি ভারসাম্যপূর্ণ গ্রুপগুলিতে আমার স্ট্যাক ওভারফ্লো পোস্টটি পড়েছেন ? আমাকে বলা হচ্ছে এটি একটি ভাল ভূমিকা। ধারণাটি নিজেই তেমন জটিল নয়, বিশেষত যদি আপনি (?<a-b>...)কোডটি গল্ফের জন্য খুব কমই প্রয়োজন হয় এমন সিনট্যাক্সটি ব্যবহার না করেন ।
মার্টিন ইন্ডার

আমি মনে করি না যে আমি এই পোস্টটি দেখেছি। সম্ভবত কারণ আমি প্রায়শই স্ট্যাক ওভারফ্লো ব্রাউজ করি না। লিঙ্কটির জন্য ধন্যবাদ, আমি এটি বুকমার্ক করব এবং এটি পড়ব।
দাভকো

1
সম্ভবত কোনও মন্তব্য করার জন্য বিষয় ছাড়াই, তবে আমার ভারসাম্য গোষ্ঠীগুলির সম্পর্কে আমার জ্ঞানের প্রায় 100% আপনার পোস্টটি পড়ে এসেছে from আমি মনে করি আপনি যে কোনও সময় এটিকে স্ব-প্রচার করতে পারেন, এটি একটি দুর্দান্ত সহায়তা :) যাইহোক বিষয় সম্পর্কে, দীর্ঘতম ইনপুটটির সাথে লাইনটি পাওয়ার জন্য মঞ্চের কাজটি <code> O-1` এর মতো কিছু সাজান? হতে পারে এটি লিপ্য লিখনের মতো কাজ করা উচিত এবং একাধিক ব্যাকটিক পৃথক অঞ্চল থাকা উচিত, একটি রেজেক্স বিভক্ত হবে এবং একটি গণনা করতে হবে? আসলে সম্ভবত এটি চ্যাটেও অন্তর্ভুক্ত ... ¯_ (ツ) _ / ¯
FryAmTheEggman

কখনই ভাবিনি o-r, দুর্দান্ত।
ইমানুয়েল ভিন্টিলি

6

জাভা, 154 142 বা 142 130 বাইট

কারণ, আপনি জানেন, জাভা।

সি #, তুলনার জন্য

146 বাইটস যদি ইনপুট দ্বারা পৃথক করা মানগুলির সাথে একক স্ট্রিং থাকে \n:

s->java.util.Arrays.stream(s.split("\n")).filter(g->g.matches("[wetyuio-r]*|[asdfghjkl]*|[zxcvbnm]*")).max((a,b)->a.length()-b.length()).get()

আমি যদি এর পরিবর্তে স্ট্রিং [] হিসাবে ইনপুট ধরে নিতে পারি তবে 134 বাইট:

s->java.util.Arrays.stream(s).filter(g->g.matches("[wetyuio-r]*|[asdfghjkl]*|[zxcvbnm]*")).max((a,b)->a.length()-b.length()).get()

সামান্য শৃঙ্খলাবদ্ধ:

UnaryOperator<String> longestQwertyStr = s -> 
        java.util.Arrays.stream(s.split("\n")) // Split string input over `\n` and convert to Stream<String>
                .filter(g->g.matches("[wetyuio-r]*|[asdfghjkl]*|[zxcvbnm]*")) // Filter to Strings that only use characters from a single row
                .max((a,b)->a.length()-b.length()) // Find the max by comparing String length
                .get(); // Convert from Optional<String> to String and implicit return single statement lambda

দ্বিতীয় লাম্বদা হ'ল ক Function<String[],String>


আমার আপডেট হওয়া সংস্করণটি এখন সম্পূর্ণ প্রোগ্রাম হিসাবে সংক্ষিপ্ত ল্যাম্বডাকেও হারায় :)
এসবিআই

জাভা'র দীর্ঘ পদ্ধতির অনুরোধ (সমস্ত ভাল মজাদার মধ্যে)
CAD97

আমি নিজে জাভা বিকাশকারী হয়ে, একই সাথে সংক্ষিপ্ত হওয়ার ব্যবস্থা করে এমন একটি ভার্বোজ ভাষা দেখে খুব ভাল লাগছে :)
এসবিআই

যদি আমরা একটি ইনপুট অনুমান করতে চলেছি, আমাদেরকে সবচেয়ে বেশি সহায়তা করে এমন একটি তৈরি করুক, ইনপুটটি তালিকা হিসাবে আসে <স্ট্রিং>: l->l.stream().filter(g->g.matches("[wertyuio-r]*|[asdfghjkl]*|[zxcvbnm]*")).max((a,b)->a.length()-b.length()).get()(১১rs অক্ষর)
অ্যান্ড্রিয়াস

@ আন্ড্রেয়াস আমার সাম্প্রতিক মেটা আলোচনার অনুসারে , যদি কোনও ল্যাম্বদা একটি তালিকা নেয়, আপনাকে import java.util.*;বাইট গণনাতে অন্তর্ভুক্ত করতে হবে , অর্থাত্ একটি তালিকা নেওয়া তালিকা -১ by বাইট তবে তালিকাটি আমদানি করতে +১৯ হবে। যাইহোক, আপনি সেখানে -7 বাইট লাভের maxপরিবর্তে ব্যবহার করে ধরেন reduce
CAD97

4

জেলি, 40 34 বাইট

p“£vẈ¬ḣ“£AS°GƤg“£ḷḳƤ²ƤȤḤ»f/€fµL€Mị

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

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

p“£vẈ¬ḣ“£AS°GƤg“£ḷḳƤ²ƤȤḤ»f/€fµL€Mị

 “£vẈ¬ḣ“£AS°GƤg“£ḷḳƤ²ƤȤḤ»           Use dictionary compression to yield
                                    ['quipo twyer', 'adj flash jg', 'bcmnz xv'].
p                                   Cartesian product; for all pairs of an input
                                    string and one of the rows.
                         f/€        Reduce each pair by filter, keeping only the
                                    letters in the input string that are on that
                                    particular keyboard row.
                            f       Filter the results, keeping only filtered words
                                    that occur in the input.
                             µ      Begin a new chain.
                              L€    Get the length of each kept word.
                                M   Get the index corr. to the greatest length.
                                 ị  Retrieve the word at that index.

4

পাইথন 3, 98

কেভিনকে ধন্যবাদ 5 বাইট সংরক্ষিত
পিএম 2 রিংয়ের জন্য 3 বাইট সংরক্ষণ করা হয়েছে।
অ্যান্টি হাপালাকে ধন্যবাদ 3 বাইট সংরক্ষণ করা হয়েছে।

এই মুহুর্তে এটি জোরপূর্বক। আমি শব্দগুলিকে কেবল একটি একক সারি দ্বারা অন্তর্ভুক্তগুলিতে ফিল্টার করি এবং তারপরে সর্বাধিক স্ট্রিং দৈর্ঘ্যের জন্য বাছাই করি।

lambda a:max(a,key=lambda x:(any(map(set(x).__le__,['qwertyuiop','asdfghjkl','zxcvbnm'])),len(x)))

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

assert f(['asdf', 'qwe', 'qaz']) == 'asdf'
assert f('''artist
home
gas
writer
geology
marine
twerp'''.splitlines()) == 'writer'
assert f('''wrhuji
bxnzmmx
gllwssjjd
vnccbb
lrkjhgfdsa
tttttt'''.splitlines()) == 'bxnzmmx'

3

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

($args-match"^([qwertyuiop]+|[asdfghjkl]+|[zxcvbnm]+)$"|sort Length)[-1]

কমান্ড-লাইন আর্গুমেন্টগুলির মাধ্যমে ইনপুট নেয় $args, তারপরে কেবল একটি কীবোর্ড সারি দ্বারা গঠিত কেবলমাত্র শব্দগুলিকেই বেছে নিতে রিজেক্স সহ -matchঅপারেটর ব্যবহার করে । আমরা সেই ফলাফলগুলিকে Sort-Objectসম্পত্তি অনুসারে পাইপ করি Length। আমরা এটি করতে পারি যেহেতু পাওয়ারশেলের স্ট্রিংগুলি সমস্ত System.Stringধরণের, যার মধ্যে .Lengthএকটি বাছাইযোগ্য সম্পত্তি হিসাবে অন্তর্ভুক্ত রয়েছে । এটি দৈর্ঘ্য অনুসারে স্ট্রিংটিকে আরোহণের ক্রমগুলিতে সাজায়, তাই আমরা সর্বশেষটি সাথে রাখি [-1], পাইপলাইনে রেখে দেই এবং আউটপুট অন্তর্ভুক্ত।

উদাহরণ

PS C:\Tools\Scripts\golfing> .\longest-word-qwerty-keyboard.ps1 asdf qwe zxc typewriter halls establishment
typewriter

3

পাইথ, 45 35 বাইট

আমাকে কিছুটা বাইট বাঁচানোর জন্য @ ফ্রাইএ্যামডিজম্যানকে ধন্যবাদ!

elDf}k-LTc."`z:I¿Ç  Ì(T4²ª$8·"\`Q

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

শব্দের তালিকা হিসাবে ইনপুট নেয়।

ব্যাখ্যা

elDf} k-LTc। "..." \ `Q # Q = সমস্ত ইনপুট শব্দের তালিকা

   এফ কিউ # ল্যাম্বদা ভেরিয়েবল হিসাবে টি দিয়ে ফিল্টার ইনপুট
         সি। "..." \ `# সমস্ত কীবোর্ড সারিগুলির তালিকা
      -LT # বর্তমান ইনপুট থেকে বর্তমান ইনপুট সারির সমস্ত অক্ষর সরান
                      # শব্দ 3 টি স্ট্রিংয়ের তালিকায় ফলাফল খালি থাকলে একটি থাকে
                      # শব্দটি একটি সারি দিয়ে টাইপ করা যায়
    } k # তালিকায় একটি এমটিপি স্ট্রিং রয়েছে কিনা তা পরীক্ষা করুন
এলডি # অর্ডার ফলাফলের তালিকা দৈর্ঘ্য অনুসারে এবং শেষটি নিন

3

রুবি, 88 82 69

যদি আমাকে স্ট্রিংগুলির একটি তালিকা নেওয়ার অনুমতি না দেওয়া হয় এবং অবশ্যই একটি বহুমুখী স্ট্রিং নিতে হবে তবে স্কোরটিতে +12 যুক্ত করুন .split('\n')এবং .grepকল করার আগে ডান যুক্ত করুন ।

রুবিতে ছুরিকাঘাতী ল্যাম্বডাস সম্পর্কে আমাকে শেখানোর জন্য এবং ম্যানটওয়ার্ক থেকে আরও অপ্টিমাইজেশনের জন্য ক্যাটস আয়ারফ্লফিকে ধন্যবাদ

->x{x.grep(/^([o-rwetyui]+|[asdfghjkl]+|[zxcvbnm]+)$/).max_by &:size}

না, আপনি .split('\n')আগে যোগ করুন .select, তাই না? আর কেন ছুরিকাঘাতী ল্যাম্বডাস?
ক্যালকুলেটরফলাইন

আমি কখনই ছুরিকাঘাতে লাম্বদা সম্পর্কে জানতাম না, যখন আপনি এটি উল্লেখ করেছেন। ধন্যবাদ!
মান কালি

আপনি -88- এবং 82 এর মধ্যে একটি স্থান যোগ করতে পারেন?
ক্যালকুলেটরফ্লাইন

এটিকে পরিবর্তনশীল হিসাবে নির্ধারণের দরকার নেই, বেনামি ক্রিয়াকলাপ অনুমোদিত; যদি .selectনিয়মিত অভিব্যক্তির বিপরীতে এর কোড ব্লকের ভিতরে কেবলমাত্র কাজটিই করা হয় তবে এটি .grepউপযুক্ত; কল চেইনে শেষ পদ্ধতির পরামিতিগুলির চারপাশে প্রথম বন্ধনী স্থাপন করার প্রয়োজন নেই; .lengthএকটি সংক্ষিপ্ত নাম আছে .size,:->x{x.grep(/^([o-rwetyui]+|[asdfghjkl]+|[zxcvbnm]+)$/).max_by &:size}
manatwork

3

সি #, 141/112 / (120 বাইট)

সুস্পষ্ট কারণে, সবচেয়ে খারাপ গল্ফিং ভাষার প্রতিযোগী। কিওয়ারটির পরিবর্তে "আমার" লোকালটি কিওয়ারটিজ ব্যবহার করে তবে অন্যথায় ভাল কাজ করে।

যেখানে ছাড়া সম্পূর্ণ প্রোগ্রাম:

static void Main(string[]a){Console.WriteLine(a.OrderBy(x=>x.Length).Last(x=>Regex.IsMatch(x,"^([qwertzuiop]+|[asdfghjkl]+|[yxcvbnm]+)$")));}

যেখানে ছাড়া কেবল আউটপুট:

Console.WriteLine(a.OrderBy(x=>x.Length).Last(x=>Regex.IsMatch(x,"^([qwertzuiop]+|[asdfghjkl]+|[yxcvbnm]+)$")));

কেবলমাত্র আউটপুট (মূল):

Console.WriteLine(a.Where(x=>Regex.IsMatch(x,"^([qwertzuiop]+|[asdfghjkl]+|[yxcvbnm]+)$")).OrderBy(x=>x.Length).Last());

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

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

আর একটি বিকল্প যুক্ত হয়েছে, যেখানে ব্যবহারের পরিবর্তে একটি শেষের সাথে কেবল শেষ ব্যবহার করে। এটি অন্য 8 বাইট বন্ধ করে দেয়।
এসবিআই

2

bash, 105 বাইট

এবং অন্যান্য বিভিন্ন ইউটিলিটি অবশ্যই।

egrep -x '[wetyuio-r]+|[asdfghjkl]+|[zxcvbnm]+'|awk '{print length($0)"\t"$0;}'|sort -n|cut -f2|tail -n1

awkকোড হিসেবে খাটো লেখা যেতে পারে $0=length"\t"$0
manatwork

2

awk, 92 84 81 বাইট

(/^([wetyuio-r]+|[asdfghjkl]+|[zxcvbnm]+)$/)&&length>length(a){a=$0}END{print a}  

@ ওল্ফগ্যাং পরামর্শের জন্য 3 বাইট সংরক্ষণ করা হয়েছে


আপনি ব্যবহার করে একটি বাইট বিয়োগ করতে পারেন [wetyuio-r]করে পরিবর্তে, এবং এছাড়াও আরো দুটি /^(expr|expr|expr)$/^ expr $ / | ^ expr $ | `/ ^ expr $ পরিবর্তে
উলফগ্যাং

@ ওল্ফগ্যাং: টিপটির জন্য ধন্যবাদ। আমি ইতিমধ্যে ২ য় বার চেষ্টা করেছি এবং আমার জাগ্রত সময়ে এটি আমাকে ডানটির পরিবর্তে দীর্ঘতম শব্দটি দিয়েছিল ... আমি আবার চেষ্টা করব। আমি যদিও প্রথমটির সাথে একমত, 1 বাইট সংরক্ষণ করে
অলিভিয়ার ডুলাক

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

আপনি কি নিশ্চিত যে নিয়মিত প্রকাশের চারপাশের প্রথম বন্ধনী প্রয়োজনীয়? gawkএবং mawkতাদের ছাড়া খুশি।
manatwork

@ মান্যাটওয়ার্ক: অন্তর্নিহিতগুলি প্রয়োজনীয়, যুক্তি এবং মূল্যায়নের ক্রমটি নিশ্চিত করার জন্য আমি তাদেরকে বহিরাগত পছন্দ করি। .. হতে পারে 2 চরের "ব্যয়"
অলিভিয়ার দুলাক

1

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

[]y"@Y:nh]2$SP"@Y:!t'asdfghjkl'mw'zxcvbnm'myy+~hhAa?@.

এটি ভাষা / সংকলকের বর্তমান সংস্করণ (14.0.0) এর সাথে কাজ করে ।

ইনপুট ফর্ম্যাট (প্রথম উদাহরণ)

{'artist' 'home' 'gas' 'writer' 'geology' 'marine' 'twerp'}

বা (দ্বিতীয় উদাহরণ)

{'wrhuji' 'bxnzmmx' 'gllwssjjd' 'vnccbb' 'lrkjhgfdsa' 'tttttt'}

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

ব্যাখ্যা

[]               % push empty array. Will be used for concatenation
y                % take input array implicitly at bottom of stack, and copy onto top
"                % for each string
  @Y:            %   push current string
  nh             %   get its length. Concatenate with array of previous lengths
]                % end for each
2$S              % sort the original copy of input array by increasing string length
P                % flip: sort by decreasing length
"                % for each string in decreasing order of length
  @Y:!           %   push that string as a column char vector
  t'asdfghjkl'm  %   duplicate. Tru for chars in 2nd row of keyboard
  w'zxcvbnm'm    %   swap. True for chars in 3rd row of keyboard
  yy+~           %   duplicate top two arrays, sum, negate: true for chars in 1st row
  hh             %   concatenate horizontally twice
  Aa             %   true if any column has all true values
  ?              %   if that's the case
    @            %     push string  
    .            %     break for each loop
                 %   end if implicitly
                 % end for each
                 % display implicitly

1

পার্ল, 81 বাইট

$a=$1 if/^([wetyuio-r]+|[asdfghjkl]+|[zxcvbnm]+)$/&&1<<y///c>$a=~y///c;END{say$a}

প্রতীক থেকে চিঠি গণনা বেশ উচ্চ।


0

গ্রোভি, 65 টি অক্ষর

{it.grep(~/[o-rwetyui]+|[asdfghjkl]+|[zxcvbnm]+/).max{it.size()}}

নমুনা রান:

groovy:000> ({it.grep(~/[o-rwetyui]+|[asdfghjkl]+|[zxcvbnm]+/).max{it.size()}})(['wrhuji', 'bxnzmmx', 'gllwssjjd', 'vnccbb', 'lrkjhgfdsa', 'tttttt'])
===> bxnzmmx

নোট করুন যে নিয়মিত অভিব্যক্তিটি ব্যবহারের .grep()জন্য অ্যাঙ্করিংয়ের প্রয়োজন নেই, গ্রুপিংকেও ছাড়িয়ে যাবে:

groovy:000> ['ab', 'ac', 'bc', 'abc', 'aca', 'bbc'].grep ~/[ac]+|b+/
===> [ac, aca]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.