সুপ্রিম সাম স্ট্রিং


15

সুপ্রিম সাম স্ট্রিং

একটি ইনপুট স্ট্রিং দেওয়া হয়েছে, এর প্রতিটি ইউনিকোড অক্ষরের সর্বোচ্চ যোগফল সহ শব্দটি ফিরুন return

বিধি

  • ইনপুটটি সাদা স্থান দ্বারা পৃথক করা উচিত
  • প্রতিটি শব্দের মান শব্দের UTF-16 কোডের প্রতিটি বর্ণের যোগফলের উপর ভিত্তি করে
  • আউটপুটটি সর্বোচ্চ মান সহ প্রথম শব্দ হওয়া উচিত (সদৃশ অঙ্কের ক্ষেত্রে)

উদাহরণ

Input: "a b c d e"
Output: "e"

Input: "hello world"
Output: "world"

Input: "this is a test"
Output: "test"

Input: "àà as a test"
Output: "àà"

Input "α ää"
Output: "α"

Input: "🍬 隣隣隣"
Output: "隣隣隣"

Input: "💀 👻 🤡 🦇 🕷️ 🍬 🎃"
Output: "🕷️"

এটি কোড গল্ফ, তাই সংক্ষিপ্ত উত্তরটি জেতে! শুভকামনা :)


সর্বদা কমপক্ষে একটি স্থান (কমপক্ষে 2 শব্দ) থাকবে?
Emigna

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

1
আমি বেশিরভাগ ইউনিকোড ব্যবহার করেছি কারণ এতে ইমোজিস
লল রয়েছে

2
যেহেতু বর্তমানের অনেকের উত্তর ইউটিএফ -8 বা ইউটিএফ -32 কোড ইউনিটের যোগফল ব্যবহার করে বলে মনে হচ্ছে আপনার কিছু অতিরিক্ত পরীক্ষার কেস যুক্ত করা উচিত। উদাহরণস্বরূপ "α ää" ইউটিএফ -8 (383 <718) এবং ইউটিএফ -16 (945> 456) এর সাথে বিভিন্ন ফলাফল দেয়।
nwellnhof

1
হ্যাঁ, নতুনলাইন অঞ্চল অনুমোদিত। ট্যাবগুলিও!
গামাগেমস

উত্তর:


3

জেলি , 7 বাইট

ḲOS$ÐṀḢ

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

ḲOS$ÐṀḢ
Ḳ        Split input on spaces
    ÐṀ   Give words that have maximum of:
   $       Monad:
 O           ord(each character)
  S          sum
      Ḣ  First word that gives the max ord-sum.

শব্দের একটি তালিকা হিসাবে যদি O§MḢị
জোনাথন অ্যালান

@ জোনাথন অ্যালান ওপিকে কোথায় অনুমতি দেওয়া হয়েছে তা বলে?
dylnan

শুধু তাই না ...
জোনাথন অ্যালান

@ জোনাথন অ্যালান আহ, গ্যাচা
dylnan

1
@GammaGames যদি আমি যেমন স্ট্রিং একটি তালিকা গ্রহণ করতে পারে এটা সাহায্য করবে ["abc", "def"]। তবে এই মুহুর্তে অনেক উত্তর রয়েছে তাই আমি
ইনপুটটির


6

আর , 77 69 59 58 56 44 বাইট

একটি গ্রুপ প্রচেষ্টা এখন।

'^'=mapply
sort(-sum^utf8ToInt^scan(,""))[1]

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

কোড পয়েন্টে রূপান্তর করুন, প্রতিটি শব্দ যোগ করুন, উপেক্ষা করুন (স্টেবল) সাজান, প্রথম উপাদানটি ফেরত দিন।

প্রযুক্তিগতভাবে রিটার্ন মান হ'ল "নামযুক্ত ভেক্টর" যার মান যোগফল এবং নামটি বিজয়ী শব্দ, তবে এটি বিধিগুলি অনুসরণ করে বলে মনে হয়। আপনি যদি বিজয়ী শব্দটি স্ট্রিং হিসাবে ফিরিয়ে দিতে চান তবে আপনাকে আরও 7 টি বাইট ব্যয় করতে হবে এবং উপরেরটি মোড়ানো করতে হবে names()


শব্দের সামনে ফাঁকা থাকার কোনও কারণ আছে? আমি যখন এটি চালান তখন "💀 👻 🤡 🦇 🕷️ 🍬 🎃"এটি মুদ্রণ করে " 🕷️ "(সামনে একগুচ্ছ ফাঁক দিয়ে)
গ্যামা গেমস

2
@ গ্যামা গেমস আউটপুটটিকে আর-তে একটি "নামযুক্ত ভেক্টর" বলা হয় this এক্ষেত্রে মানটি বিজয়ী শব্দের কোড পয়েন্টের যোগফল এবং সেই সাথে নামটি মুদ্রিত হয়, যা এই ক্ষেত্রে বিজয়ী শব্দ নিজেই। নামটি নীচের সংখ্যায় ডানদিকে যুক্ত হয় is
এনজিএম

ওহ, ঝরঝরে! দেখে মনে হচ্ছে এটি নিয়মগুলি অনুসরণ করে না, তাই আমি এটির অনুমতি দেব। শীতল প্রবেশ!
গামাগেমস

sort(-sapply(...))3 বাইট দ্বারা সংক্ষিপ্ত।
জিউসেপে

3
@ জাসি নিখরচায় mapplyকরে unlist
এনজিএম

5

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

ð¡RΣÇO}θ

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

ব্যাখ্যা

ð¡          # split input on spaces
  R         # reverse the resulting list
   Σ  }     # sort by
    ÇO      # sum of character codes
       θ    # take the last

বাহ, আমি উত্সর্গীকৃত গল্ফিং ভাষায় তৈরি উত্তরগুলি দ্বারা সর্বদা অবাক!
গামাগেমস

ফলস্বরূপ তালিকাটি আপনার বিপরীতে কেন দরকার? এটা ঠিক যেভাবে সাজানো হবে? বা Rএর তালিকা সাজানোর পরে কি আসলে তালিকাটি উল্টে দেয়?
ফায়ারকিউজ

পরীক্ষা ক্ষেত্রে জন্য @FireCubez এবং একই বৃহত্তম ইউনিকোড সমষ্টি আছে। বিপরীত ছাড়া আউটপুট পরিবর্তে হবে । বিটিডব্লিউ, এমিগনা, বাইট সংরক্ষণ করতে ব্যবহার করুন । ;) সম্পাদনা: কিছু মনে করবেন না। আমি দেখতে পাচ্ছি এটি একক শব্দের ইনপুটগুলির জন্য তালিকায় ইনপুটটি মোড়ায় না .. এটি দুর্ভাগ্য। àà as a testààtesttestàà#
কেভিন ক্রুইজসেন

4

জাভাস্ক্রিপ্ট (ES6), 81 বাইট

s=>s.split` `.map(m=s=>m=[...s].map(c=>t+=c.charCodeAt(),t=0)&&t<=m?m:(r=s,t))&&r

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


আমি যখন চ্যালেঞ্জটি লিখছিলাম তখন যে কোডটি আমি নিয়ে এসেছি তার চেয়ে সেভাবেই ভাল, আমার ছিল 200 ডলার দীর্ঘ!
গামাগেমস


@ গেস্ট 271314 দ্বিতীয় শেষ পরীক্ষার ক্ষেত্রে এবং এর মতো কয়েকটি চরম মামলার ক্ষেত্রে কাজ করে নাf("😂 龘龘龘龘龘")
শিয়েরু আসাকোটো

@ শিেরুআসাকোটো এখানে সঠিক ফলাফল প্রত্যাবর্তন করতে দেখা যাচ্ছে tio.run/##y0osSyxOLsosKNHNy09J/… ? কি জন্য প্রত্যাশিত ফলাফল "😂 龘龘龘龘龘"?
অতিথি 271314

ওহ এনভিএম 隣(\uf9f1)হ'ল সিজেকে সুসংগত আইডিয়াগ্রাফ ব্লকের পরিবর্তে হ'ল। ভেবেছিল এটি 隣(\u96a3), সিজেকে ইউনিফাইড আইডিয়াগ্রাফ ব্লকের একটি।
শিয়েরু আসাকোটো

4

jq, 61 43 57 37 টি অক্ষর

( 57 39 53 33 টি অক্ষর কোড + 4 অক্ষর কমান্ড লাইন বিকল্পসমূহ)

./" "|reverse|max_by(explode|add)

নমুনা রান:

bash-4.4$ jq -Rr './" "|reverse|max_by(explode|add)' <<< 'àà as a test'
àà

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


প্রকৃতপক্ষে. কেস মিস। ☹ ধন্যবাদ, নিমিমি।
manatwork

4

পাইথ, 8 বাইট

h.MsCMZc

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

আমি জানি যে ইতিমধ্যে একটি পাইথ উত্তর রয়েছে তবে আমার মনে হয় এটি একটি ভিন্ন ভিন্ন পদ্ধতির ব্যবহার করে এবং এটি ওয়াহায়ও খাটো হয়

ব্যাখ্যা:
h.MsCMZc  | Full code
h.MsCMZcQ | with implicit variables added
----------+------------------------------------
h         | The first element of
       cQ | the input chopped at whitespace
 .M       | with the maximal value for
   s      | the sum of
    CMZ   | the Unicode value of each character

বাহ, এটা সত্যিই সুনির্দিষ্ট! বর্নানার জন্য ধন্যবাদ!
গামাগেমস

4

পাওয়ারশেল , 74 52 বাইট

(-split$args|sort{$r=0;$_|% t*y|%{$r+=$_};$r}-u)[-1]

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

পুরো -২২ বাইটের জন্য মজিকে ধন্যবাদ zy

-split$argsহোয়াইটস্পেসের ইনপুট গুলি , পাইপগুলিতে sortএকটি নির্দিষ্ট বাছাইয়ের প্রক্রিয়া {...}এবং -uজাতীয় পতাকা সহ।

এখানে আমরা বর্তমান শব্দটি গ্রহণ করছি $_, এটি tওচারআররা পরিবর্তন করে y, তারপরে প্রতিটি অক্ষরের জন্য আমরা এটিকে আমাদের $rএসলেটে যুক্ত করছি । এটি তার ইউটিএফ -16 উপস্থাপনার ভিত্তিতে স্ট্রিংটিকে একটি সংখ্যায় পরিণত করে।

একবারের জন্য, পাওয়ারশেলের পটভূমিতে সমস্ত স্ট্রিংগুলি ইউটিএফ -16 হওয়া একটি জীবনরক্ষক!

এরপরে আমরা সেই ফলাফলগুলিকে (...)একটি অ্যারে রূপান্তরিত করতে এবং শেষটি গ্রহণ করি [-1], অর্থাৎ বৃহত্তম ফলাফল যা বাক্য শুরুর নিকটতম হয় enc এটি -uজাতীয় পতাকাটির কারণে কাজ করে , অর্থাত্ যদি পরে কোনও উপাদান একই মান থাকে তবে এটি বাতিল করা হয়। এই শব্দটি পাইপলাইনে রেখে গেছে এবং আউটপুট অন্তর্ভুক্ত।


এটা স্মার্ট। ধন্যবাদ। 2 মুহুর্ত: sort -uপরিবর্তে বিপরীত কেন নয় ? +সংখ্যায় রূপান্তর করার জন্য যথেষ্ট হতে পারে ? (-split$args|sort{($_|% t*y|%{+$_})-join"+"|iex} -u)[-1]
mazzy

আরও গল্ফ: (-split$args|sort{$r=0;$_|% t*y|%{$r+=$_};$r}-u)[-1]:)
mazzy

হ্যাঁ, ধন্যবাদ!
অ্যাডমবর্কবার্ক

3

পাইথন 3 , 55 52 বাইট

lambda s:max(s.split(),key=lambda w:sum(map(ord,w)))

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

  • -3 বাইট গিগাফ্লপকে ধন্যবাদ জানায় যে splitপদ্ধতিতে কোনও যুক্তির প্রয়োজন নেই ।

কোনও আর্গুমেন্ট সরবরাহ করে আপনি 3 বাইট সংরক্ষণ করতে পারবেন split(), কারণ এটি কোনও গোষ্ঠী স্পেসে বিভক্ত হয়।
গিগাফ্লপ

2

2

আমি যা পোস্ট করতে চলেছিলাম তার সাথে পরিচিত। বিপরীতের প্রয়োজনীয়তা আমাকে বিরক্ত করে; যদি টাইয়ের ক্ষেত্রে আমরা কোনও শব্দ আউটপুট করতে পারি তবে পছন্দ করতাম।
শেগি

@ শেগি যদি এটি সম্ভব হয় তবে এর জন্য আমার কাছে 6 বাইটের উত্তর রয়েছে
লুইস ফেলিপ দে জেসুস মুনোজ

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

আমি দুঃখিত! মূলত আমি যখন চ্যালেঞ্জটি স্যান্ডবক্সবক্স করেছিলাম তখন আমি বুঝতে পারি যে এটি কোনও উত্তর আউটপুট দিতে পারে, তবে আমি এটির সামঞ্জস্য রেখে কিছুটা প্রতিক্রিয়া দেওয়ার পরে এটিকে পরিবর্তন করেছি
গ্যামা গেমস

2

জাভা (জেডিকে) , 117 97 84 বাইট

-13 বাইটস ধন্যবাদ @ নেভায়ে। স্পষ্টতই আমি জানতাম না আমি varজাভাতেও ব্যবহার করতে পারি ।

s->{var b="";for(var a:s.split(" "))b=a.chars().sum()>b.chars().sum()?a:b;return b;}

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


-13 বাইট:s->{var b="";for(var a:s.split(" "))b=a.chars().sum()>b.chars().sum()?a:b;return b;}
নেভায়ে


1

পাইথ , 33 বাইট

FHmCdmcd)Kczd aYu+GHmCdH0)@KxYeSY

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

এটি করার আরও ভাল উপায় অবশ্যই আছে তবে আমি এটিতে খুব বেশি ব্যয় করেছি তাই এটি করবে।

FH  #For every array of letters in 
  mCd   #the array of arrays of letters [['w', 'o', 'r', 'l', 'd'], ['h', 'e', 'l', 'l', 'o']]
     mcd)   #wrap that in another array [[hello"], ["world"]]
         Kczd   #split input(z) on spaces ["hello", "world"] and assign it to K for later
              aY     #append to list Y... " " silences the prints from the for loop.
                u+GH    #reduce the list of numbers by summing them    
                    mCdH    #convert each letter in the array to its int counterpart
                        0)    #the zero for the accumulator and close for loop
                          @K    #get by index the word from K
                            xY   #find the index in Y of that number
                              eSY   #sort Y, get the last (largest) number

লুপের জন্য ব্যবহার না করে আমি অন্য মানচিত্রে হ্রাস পেয়েছি তবে আমি এটি কাজ করতে পারিনি।


ওহে ছেলে, একটি অজস্র উত্তর! ব্যাখ্যার জন্য ধন্যবাদ, দুর্দান্ত এন্ট্রি!
গামাগেমস

1

কাঠকয়লা , 20 বাইট

≔⪪S θ≔EθΣEι℅λη§θ⌕η⌈η

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

≔⪪S θ

স্পেসে ইনপুট স্ট্রিংটি বিভক্ত করুন এবং বরাদ্দ করুন q

≔EθΣEι℅λη

প্রতিটি শব্দের মধ্যে অক্ষরের অর্ডিনালের সমষ্টি গণনা করুন এবং নির্ধারণ করুন h

§θ⌕η⌈η

সর্বাধিক অঙ্কের সূচকটি সন্ধান করুন এবং সেই সূচীতে শব্দটি মুদ্রণ করুন।


1

পাওয়ারশেল, 66 বাইট

সহজবোধ্য। পাওয়ারশেলের একটি স্মার্ট ব্যবহারের জন্য অ্যাডমবর্কবার্কের উত্তর দেখুন ।

-split$args|%{$s=0
$_|% t*y|%{$s+=$_}
if($s-gt$x){$w=$_;$x=$s}}
$w

বিঃদ্রঃ! ইউনিকোড দিয়ে কাজ সংশোধন করতে, আপনার স্ক্রিপ্ট ফাইল UTF-16বা এর সাথে সংরক্ষণ করুনUTF8 with BOM এনকোডিং ।

পরীক্ষার স্ক্রিপ্ট:

$f = {

-split$args|%{$s=0         # split argument strings by whitespaces, for each word
$_|% t*y|%{$s+=$_}         # let $s is sum of unicode char code
if($s-gt$x){$w=$_;$x=$s}}  # if $s greater then previous one, store word and sum to variables
$w                         # return word from stored variable

}

@(
    ,("a b c d e", "e")

    ,("hello world", "world")

    ,("this is a test", "test")

    ,("àà as a test", "àà")

    ,("α ää", "α")

    ,("🍬 隣隣隣", "隣隣隣")

    ,("💀 👻 🤡 🦇 🕷️ 🍬 🎃", "🕷️")
) | % {
    $s,$e=$_
    $r=&$f $s
    "$($r-eq$e): $r"
}

আউটপুট:

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