ছোট হাতের অক্ষরে বড় হাতের অক্ষরের অনুপাত


28

এই চ্যালেঞ্জে আপনি এবং আপনার বন্ধুরা বিতর্ক করছেন যে কোন ক্ষেত্রে ভাল, বড় হাতের বা ছোট হাতের? এটির জন্য, আপনি এটি করার জন্য একটি প্রোগ্রাম লিখুন।

যেহেতু এসোলেংগুলি আপনার বন্ধুদের ভয় দেখায়, এবং ভার্বোজ কোড আপনাকে ভয় দেয়, আপনার কোডটি যতটা সম্ভব সংক্ষিপ্ত হওয়া দরকার।


উদাহরণ

PrOgRaMiNgPuZzLeS & CoDe GoLf
0.52 uppercase

DowNGoAT RiGHtGoAt LeFTGoat UpGoAT
0.58 uppercase

Foo BaR Baz
0.56 lowercase

বিশেষ উল্লেখ

ইনপুটটিতে কেবলমাত্র ASCII অক্ষর থাকবে। বর্ণমালাবিহীন সমস্ত অক্ষর উপেক্ষা করা উচিত। প্রতিটি মামলার কমপক্ষে 1 টি চরিত্র থাকবে

আউটপুটটি বর্ণমালার অক্ষরের মোট পরিমাণের চেয়ে বেশিরভাগ ক্ষেত্রে ক্ষেত্রে প্রদর্শিত হয়। এটি কমপক্ষে 2 দশমিক স্থানের দশমিক নির্ভুল হওয়া উচিত । যদি বড় হাতের অক্ষর বেশি দেখা যায় তবে আউটপুটটি শেষ হওয়া উচিত uppercase, বা lowercase

বড় পরিমাণে বড় হাতের অক্ষর এবং ছোট হাতের অক্ষর কখনও হবে না।


7
এসোলাংগুলি আমার বন্ধুদের ভয় দেখায় না। তার মানে কি আমার কোডটি বুনোভাবে ভার্বোজ হতে পারে?
অ্যালেক্স এ।

@AlexA। ভার্বোজ কোড আপনাকে ভয় দেখায়, তাই আপনার কোডটিও গল্ফ করা দরকার।
ডাউনগোট

16
ওহ ঠিক আছে, আমি আমার পুনরাবৃত্ত জাভা দুঃস্বপ্নগুলি ভুলে গিয়েছিলাম।
অ্যালেক্স এ।

4
কেবল একটি মামলার সাথে কি ইনপুট থাকবে?
manatwork

1
"কমপক্ষে 2 দশমিক স্থানে সঠিক" এর জন্য কি কমপক্ষে দুটি দশমিক প্রিন্ট করা দরকার, বা শূন্যের দ্বিতীয় দশমিক ছাড়তে পারে?
এইচডিভি

উত্তর:


2

পাইথ - 40 বাইট

আমি প্রথমবারের মতো ভেক্টরাইজড স্ট্রিং ফর্ম্যাটিং ব্যবহার করেছি যা বেশ দুর্দান্ত।

Kml-zrzd2eS%Vm+cdsK" %sercase"Kc"upp low

টেস্ট স্যুট


7

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

1 বাইট সম্পাদিত THX ইটিএইচ প্রডাকশন
সম্পাদনা করুন আরও 1 বাইট সম্পাদনা করুন THX l4me

একটি বেনামে ফাংশন। দীর্ঘ, তবে আমি এর থেকে আরও গল্ফ দেওয়ার কোনও উপায় খুঁজে পাইনি

s=>(l=t=0,s.replace(/[a-z]/ig,c=>l+=++t&&c>'Z'),l/=t,l<.5?1-l+' upp':l+' low')+'ercase'

কম গল্ফড

s=>( // arrow function returning the value of an expression
  // here I use comma for clarity, 
  // in the golfed version it's all merged in a single expression
  t = 0, // counter for letters
  l = 0, // counter for lowercase letters 
  s.replace(
    /[a-z]/ig, // find all alphabetic chars, upper or lowercase
    c => // execute for each found char (in c)
        l += ++t && c>'Z', // increment t, increment l if c is lowercase
  ),
  l /= t, // l is the ratio now
  ( l < .5 // if ratio < 1/2
    ? (1-l) +' upp' // uppercase count / total (+" upp")
    : l +' low'     // lowrcase count / total (+" low")
  ) + 'ercase' // common suffix
)

আমি বিশ্বাস করি আপনি ব্যবহার করে একটি বাইট সংরক্ষণ করতে পারেন &&` ${t-l>l?1-l/t+'upp':l/t+'low'}ercase`
ETH প্রোডাকশনগুলি

এছাড়াও, c=>l+=++t&&c>'Z'কাজ হবে, আমি মনে করি ...?
ETH প্রোডাকশনগুলি

@ এইচটি প্রোডাকশনগুলি আপনার প্রথম ইঙ্গিতটি কার্যকর বলে মনে হচ্ছে না, দ্বিতীয়টি চালাক, thx
edc65

1
আমরা কি ব্যাখ্যা সহ দর্শনীয় সংস্করণটি দেখতে পাচ্ছি?
সাইয়েস

@ কিয়েসের ব্যাখ্যা যুক্ত হয়েছে - এটি আসলে সহজ
edc65

4

সিজেম, 47 45 বাইট

q__eu-\_el-]:,_:+df/" low upp"4/.+:e>"ercase"

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

খুব বেশি দিন গল্ফ করছে না ...

ব্যাখ্যা

q               e# Read input.
__eu-           e# Get only the lowercase characters.
\_el-           e# Get only the uppercase characters.
]:,             e# Get the lengths of the two strings.
_:+             e# Sum of the lengths.
df/             e# Lengths divided by the sum of the lengths.
" low upp"4/.+  e# Append the first number with " low" and the second " upp"
:e>             e# Find the maximum of the two.
"ercase"        e# Output other things.

4

জাপট , 58 বাইট

A=Uf"[a-z]" l /Uf"[A-Za-z]" l)>½?A+" low":1-A+" upp" +`ÖÐ

(দ্রষ্টব্য: এসই এর আগে একটি বিশেষ চর ছিনিয়ে নিয়েছে Ö, সুতরাং সঠিক কোড পেতে লিংকটি ক্লিক করুন)


চমৎকার কাজ! (ডলার চিহ্ন সহ) আপনার প্রথম Regex সঙ্গে প্রতিস্থাপিত হতে পারে "[a-z]", এবং দ্বিতীয় "A-Za-z"0.5সমান ½। আপনি চূড়ান্ত উদ্ধৃতি চিহ্নও মুছে ফেলতে পারেন।
ETH প্রোডাকশনস

উল্লিখিত পরিবর্তন এবং স্ট্রিং সংকোচনের সাথে আমি 58 পেয়েছি: A=Uf"[a-z]" l /Uf"[A-Za-z]" l)>½?A+" low":1-A+" upp" +`\x80ÖÐআপনি শেষ তিনটি বাইটের কাঁচা সংস্করণটি পেতে পারেন Oc"ercase
ইটিএইচ প্রডাকশনস

@ \x80এটি কিছু করার জন্য উপস্থিত হয়নি, এবং ÖÐ"কেস" তৈরি করেছে ... সম্ভবত কিছু অদৃশ্য চরগুলি কেটে গেছে?
বিটিডাব্লু

@ ইথ ঠিক আছে, সেই ইনভিসি-চরটি ব্যবহার করতে পরিচালিত :)
নিকেল

দুর্ভাগ্যক্রমে, রেগেক্স পার্সার কাজ করার জন্য ব্যাকস্ল্যাশগুলি স্ট্রিংয়ের ভিতরে দ্বিগুণ করতে হবে। এই ক্ষেত্রে, "\w"কেবল সমস্ত wএর সাথে "\\w"মেলে এবং সমস্তটির সাথে মেলে A-Za-z0-9_। সুতরাং আমি মনে করি আপনার রাখা দরকার "[a-z]"
ETH প্রোডাকশনগুলি

4

আর , 133 123 118 108 106 105 104 বাইট

@ ওভিএসকে 10 বাইট ডাউন, @ জিউজ্পে 8 টি ধন্যবাদ এবং 10 জনের আবার @ জিএম ধন্যবাদ জানায় Golf এই মুহুর্তে এটি সত্যিই একটি সহযোগী প্রচেষ্টা যেখানে আমি বাইটগুলি সরবরাহ করি এবং অন্যরা সেগুলি বন্ধ করে দেয়;)

function(x)cat(max(U<-mean(utf8ToInt(gsub('[^a-zA-Z]',"",x))<91),1-U),c("lowercase","uppercase")[1+2*U])

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


শেভ করে আরও 1 বাইট
জাইসি

3

এমএটিএল , 49 50 বাইট

ব্যবহার বর্তমান সংস্করণ (4.1.1) ভাষা, যা চ্যালেঞ্জ আগের হয়।

jt3Y2m)tk=Ymt.5<?1w-YU' upp'h}YU' low'h]'ercase'h

উদাহরণ

>> matl
 > jt3Y2m)tk=Ymt.5<?1w-YU' upp'h}YU' low'h]'ercase'h
 > 
> PrOgRaMiNgPuZzLeS & CoDe GoLf
0.52 uppercase

>> matl
 > jt3Y2m)tk=Ymt.5<?1w-YU' upp'h}YU' low'h]'ercase'h
 > 
> Foo BaR Baz
0.55556 lowercase

ব্যাখ্যা

j                   % input string
t3Y2m)              % duplicate. Keep only letters
tk=Ym               % duplicate. Proportion of lowercase letters
t.5<?               % if less than .5
    1w-             % compute complement of proportion
    YU' upp'h       % convert to string and append ' upp'
}                   % else
    YU' low'h       % convert to string and append ' low' 
]                   % end
'ercase'            % append 'ercase'

3

জুলিয়া, 76 74 বাইট

s->(x=sum(isupper,s)/sum(isalpha,s);(x>0.5?"$x upp":"$(1-x) low")"ercase")

এটি একটি ল্যাম্বদা ফাংশন যা একটি স্ট্রিং গ্রহণ করে এবং একটি স্ট্রিং প্রদান করে। এটি কল করতে, এটি একটি ভেরিয়েবলের জন্য বরাদ্দ করুন।

Ungolfed:

function f(s::AbstractString)
    # Compute the proportion of uppercase letters
    x = sum(isupper, s) / sum(isalpha, s)

    # Return a string construct as x or 1-x and the appropriate case
    (x > 0.5 ? "$x upp" : "$(1-x) low") * "ercase"
end

Edc65 ধন্যবাদ 2 বাইট সংরক্ষণ করা!


1
ইউ অবশ্যই অবশ্যই ercasecase
এডক 65

@ edc65 দুর্দান্ত ধারণা, ধন্যবাদ!
অ্যালেক্স এ।

3

পার্ল 6 ,  91 70 69 63   61 বাইট

{($/=($/=@=.comb(/\w/)).grep(*~&' 'ne' ')/$/);"{$/>.5??$/!!1-$/} {<low upp>[$/>.5]}ercase"} # 91
{$/=m:g{<upper>}/m:g{\w};"{$/>.5??$/!!1-$/} {<low upp>[$/>.5]}ercase"} # 70
{"{($/=m:g{<upper>}/m:g{\w})>.5??$/!!1-$/} {<low upp>[$/>.5]}ercase"} # 69
{"{($/=m:g{<upper>}/m:g{\w})>.5??"$/ upp"!!1-$/~' low'}ercase"} # 63

{"{($/=m:g{<:Lu>}/m:g{\w})>.5??"$/ upp"!!1-$/~' low'}ercase"} # 61

ব্যবহার:

# give it a lexical name
my &code = {...}

.say for (
  'PrOgRaMiNgPuZzLeS & CoDe GoLf',
  'DowNGoAT RiGHtGoAt LeFTGoat UpGoAT',
  'Foo BaR Baz',
)».&code;
0.52 uppercase
0.580645 uppercase
0.555556 lowercase

2
ধর্মঘট-মাধ্যমে কোড ব্লক? এটি নতুন কিছু ...
বোজিদার মারিনভ

1
সর্বোচ্চ ("0.55 আপ", "0.45 কম") এর জন্য অদলবদল করে 3 টি চর হারিয়ে দিন: চেষ্টা করুন
ফিল এইচ

3

সি #, 135 বাইট

প্রয়োজন:

using System.Linq;

আসল ফাংশন:

string U(string s){var c=s.Count(char.IsUpper)*1F/s.Count(char.IsLetter);return(c>0.5?c+" upp":1-c+" low")+"ercase";}

ব্যাখ্যা সহ:

string U(string s)
{
    var c = s.Count(char.IsUpper) // count uppercase letters
               * 1F               // make it a float (less bytes than (float) cast)
               / s.Count(char.IsLetter); // divide it by the total count of letters
    return (c > 0.5 
        ? c + " upp"  // if ratio is greater than 0.5, the result is "<ratio> upp"
        : 1 - c + " low") // otherwise, "<ratio> low"
        + "ercase"; // add "ercase" to the output string
}

3

পাইথন 2, 114 110 বাইট

i=input()
n=1.*sum('@'<c<'['for c in i)/sum(c.isalpha()for c in i)
print max(n,1-n),'ulpopw'[n<.5::2]+'ercase'

1
আপনি প্রতিস্থাপন 2 বাইট সংরক্ষণ করতে পারবেন ['upp','low'][n<.5]সঙ্গে 'ulpopw'[n<.5::2]প্রতিস্থাপন দ্বারা, এবং আরও 3 টি [n,1-n][n<.5]সঙ্গে max(n,1-n)
পূর্কাকাডারী



2

পিএইচপি, 140 129 টি অক্ষর

আমার প্রথম রাউন্ডের গল্ফ - 'স্ট্যান্ডার্ড' ভাষার জন্য খুব খারাপ নয়, তাই না? :-)

মূল:

function f($s){$a=count_chars($s);for($i=65;$i<91;$i++){$u+=$a[$i];$l+=$a[$i+32];}return max($u,$l)/($u+$l).($u<$l?' low':' upp').'ercase';}

@ মান্যাটওয়ার্ককে ধন্যবাদ 129 টি অক্ষরে সংক্ষিপ্ত করে:

function f($s){$a=count_chars($s);for(;$i<26;$u+=$a[$i+++65])$l+=$a[$i+97];return max($u,$l)/($u+$l).' '.($u<$l?low:upp).ercase;}

মন্তব্য সহ:

function uclcratio($s)
{
  // Get info about string, see http://php.net/manual/de/function.count-chars.php
  $array = count_chars($s);

  // Loop through A to Z
  for ($i = 65; $i < 91; $i++) // <91 rather than <=90 to save a byte
  {
    // Add up occurrences of uppercase letters (ASCII 65-90)
    $uppercount += $array[$i];
    // Same with lowercase (ASCII 97-122)
    $lowercount += $array[$i+32];
  }
  // Compose output
  // Ratio is max over sum
  return max($uppercount, $lowercount) / ($uppercount + $lowercount)
  // in favour of which, equality not possible per challenge definition
         . ($uppercount < $lowercount ? ' low' : ' upp') . 'ercase';
}

প্রদত্ত $u+=…, আমি মনে করি আপনার ইতিমধ্যে error_reportingডিফল্ট আছে, তাই সতর্কতা স্থির করে। তারপর কিছু কোট অপসারণ: ' '.($u<$l?low:upp).ercase
manatwork

যদি আপনার কাছে কেবলমাত্র একটি বিবৃতি দেওয়া থাকে তবে আপনি তার forচারপাশের বন্ধনীগুলি সরিয়ে ফেলতে পারেন। for($i=65;$i<91;$u+=$a[$i++])$l+=$a[$i+32];
manatwork

অন্য সতর্কতার মূল্যের সাথে, আপনি for65..91 এর পরিবর্তে 0..26 লুপ করে নিয়ন্ত্রণ পরিবর্তনশীল সূচনাটি ছাড়তে পারবেন:for(;$i<26;$u+=$a[$i+++65])$l+=$a[$i+97];
manatwork

বাহ, আপনাকে ধন্যবাদ @ মানাত্কার, আমি জানতাম না পিএইচপি কতটা সহনশীল! : ডি দ্বিতীয়টি খুব স্মার্ট। আমি 140-4-5-2 = 129 :-) গণনা আনয়ন আপনার ধারনা বাস্তবায়ন,
Christallkeks

2

রুবি, 81 + 1 = 82

পতাকা সহ -p,

$_=["#{r=$_.count(a='a-z').fdiv$_.count(a+'A-Z')} low","#{1-r} upp"].max+'ercase'

এটি ভাগ্যবান যে 0 এবং 1 এর মধ্যে সংখ্যার জন্য, অভিধানিক বাছাই সংখ্যার বাছাইয়ের সমান।



1

গেমা, 125 টি অক্ষর

\A=@set{l;0}@set{u;0}
<J1>=@incr{l}
<K1>=@incr{u}
?=
\Z=0.@div{@cmpn{$l;$u;$u;;$l}00;@add{$l;$u}} @cmpn{$l;$u;upp;;low}ercase

নমুনা রান:

bash-4.3$ for input in 'PrOgRaMiNgPuZzLeS & CoDe GoLf' 'DowNGoAT RiGHtGoAt LeFTGoat UpGoAT' 'Foo BaR Baz'; do
>     gema '\A=@set{l;0}@set{u;0};<J1>=@incr{l};<K1>=@incr{u};?=;\Z=0.@div{@cmpn{$l;$u;$u;;$l}00;@add{$l;$u}} @cmpn{$l;$u;upp;;low}ercase' <<< "$input"
>     echo " <- $input"
> done
0.52 uppercase <- PrOgRaMiNgPuZzLeS & CoDe GoLf
0.58 uppercase <- DowNGoAT RiGHtGoAt LeFTGoat UpGoAT
0.55 lowercase <- Foo BaR Baz

-1 কারণ এসোলেংগুলি আপনার বন্ধুদের ভয় দেখায়। (
জে.কে.

1

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

" upp"" low"k"ercase"@+╗,;;ú;û+∩@-@-;l@ú@-l/;1-k;i<@╜@ZEεj

হেক্স ডাম্প:

22207570702222206c6f77226b2265726361736522402bbb2c3b3ba33b
962bef402d402d3b6c40a3402d6c2f3b312d6b3b693c40bd405a45ee6a

এটি কেবল ডাউনলোডযোগ্য দোভাষীকে নিয়ে কাজ করে ... অনলাইনটি এখনও ভাঙা।

ব্যাখ্যা:

" upp"" low"k"ercase"@+╗                                    Put [" lowercase"," uppercase"]
                                                            in reg0
                        ,;;ú;û+∩@-@-                        Read input, remove non-alpha
                                    ;l@                     Put its length below it
                                       ú@-                  Delete lowercase
                                          l                 Get its length
                                           /                Get the ratio of upper/total
                                            ;1-k            Make list [upp-ratio,low-ratio]
                                                ;i<         Push 1 if low-ratio is higher
                                                   @        Move list to top
                                                    ╜@Z     Zip it with list from reg0
                                                       E    Pick the one with higher ratio
                                                        εj  Convert list to string.

1

পাইথ, 45 বাইট

AeSK.e,s/LzbkrBG1s[cGshMKd?H"upp""low""ercase

এটি অনলাইনে চেষ্টা করুন। পরীক্ষা স্যুট.

ব্যাখ্যা

             rBG1               pair of alphabet, uppercase alphabet
    .e                          map k, b over enumerate of that:
      ,                           pair of
           b                          lowercase or uppercase alphabet
        /Lz                           counts of these characters in input
       s                              sum of that
                                    and
            k                         0 for lowercase, 1 for uppercase
   K                            save result in K
 eS                             sort the pairs & take the larger one
A                               save the number of letters in and the 0 or 1 in H

s[                              print the following on one line:
  cG                              larger number of letters divided by
    shMK                            sum of first items of all items of K
                                    (= the total number of letters)
        d                         space
         ?H"upp""low"             "upp" if H is 1 (for uppercase), otherwise "low"
                     "ercase      "ercase"

1

কফিস্ক্রিপ্ট, 104 টি অক্ষর

 (a)->(r=1.0*a.replace(/\W|[A-Z]/g,'').length/a.length)&&"#{(r>.5&&(r+' low')||(1-r+' upp'))+'ercase'}"

কফিস্ক্রিপ্ট প্রথমে "আর" মান হিসাবে যুক্তি হিসাবে প্রত্যাশিত রিটার্ন মানটি পাস করার চেষ্টা করছিল যা ব্যর্থ হয়েছিল এবং অত্যন্ত বিরক্তিকর ছিল কারণ r একটি সংখ্যা ছিল, কোনও ফাংশন নয়। আমি &&তাদের পৃথক করতে বিবৃতি মধ্যে একটি রেখে এটি কাছাকাছি পেয়েছিলাম ।


1

পাইথ, 54 53

একটি বাইট @ মাল্টেসেনকে ধন্যবাদ রক্ষা করেছে

K0VzI}NG=hZ)I}NrG1=hK;ceS,ZK+ZK+?>ZK"low""upp""ercase

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

K0                  " Set K to 0
                    " (Implicit: Set Z to 0)

Vz                  " For all characters (V) in input (z):
  I}NG              " If the character (N) is in (}) the lowercase alphabet (G):
    =hZ             " Increment (=h) Z
  )                 " End statement
  I}NrG1            " If the character is in the uppercase alphabet (rG1):
    =hK             " Increment K
;                   " End all unclosed statements/loops

c                   " (Implicit print) The division of
  e                 " the last element of
    S,ZK           " the sorted (S) list of Z and K (this returns the max value)
+ZK                 " by the sum of Z and K

+                   " (Implicit print) The concatenation of
  ?>ZK"low""upp"    " "low" if Z > K, else "upp"
  "ercase"          " and the string "ercase".

,<any><any>দু'টি আরটি কমান্ড [<any><any>)যা একই রকম যা আপনাকে একটি বাইট বাঁচাতে পারে
মালটিসেন

1

রুবি, 97 টি অক্ষর

->s{'%f %sercase'%[(l,u=[/[a-z]/,/[A-Z]/].map{|r|s.scan(r).size}).max.fdiv(l+u),l>u ?:low: :upp]}

নমুনা রান:

2.1.5 :001 > ['PrOgRaMiNgPuZzLeS & CoDe GoLf', 'DowNGoAT RiGHtGoAt LeFTGoat UpGoAT', 'Foo BaR Baz'].map{|s|->s{'%f %sercase'%[(l,u=[/[a-z]/,/[A-Z]/].map{|r|s.scan(r).size}).max.fdiv(l+u),l>u ?:low: :upp]}[s]}
 => ["0.520000 uppercase", "0.580645 uppercase", "0.555556 lowercase"] 

1

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

ʒ.u}gság/Dò©_αð„Œ„›…#'ƒß«®èJ

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


ʒ.u}g                        # filter all but uppercase letters, get length.
     ság/                    # Differential between uppercase and input length.
         Dò©                 # Round up store result in register w/o pop.
            _α               # Negated, absolute difference.
              ð              # Push space.
               „Œ„›…         # Push "upper lower"
                    #        # Split on space.
                     'ƒß«    # Concat "case" resulting in [uppercase,lowercase]
                         ®èJ # Bring it all together.

1

জাভা 8, 136 130 বাইট

s->{float l=s.replaceAll("[^a-z]","").length();l/=l+s.replaceAll("[^A-Z]","").length();return(l<.5?1-l+" upp":l+" low")+"ercase";}

-6 বাইট @ প্রোগ্রামগ্রামফক্স 'সি # .NET উত্তরের একটি বন্দর তৈরি করে

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

ব্যাখ্যা:

s->{                  // Method with String as both parameter and return-type
  float l=s.replaceAll("[^a-z]","").length();
                      //  Amount of lowercase
  l/=l+s.replaceAll("[^A-Z]","").length();
                      //  Lowercase compared to total amount of letters
  return(l<.5?        //  If this is below 0.5:
          1-l+" upp"  //   Return `1-l`, and append " upp"
         :            //  Else:
          l+" low")   //   Return `l`, and append " low"
        +"ercase";}   //  And append "ercase"

1

রেক্সএক্স, 144 বাইট

a=arg(1)
l=n(upper(a))
u=n(lower(a))
c.0='upp';c.1='low'
d=u<l
say 1/((u+l)/max(u,l)) c.d'ercase'
n:return length(space(translate(a,,arg(1)),0))



1

কোটলিন , 138 বাইট

কোড

let{var u=0.0
var l=0.0
forEach{when{it.isUpperCase()->u++
it.isLowerCase()->l++}}
"${maxOf(u,l)/(u+l)} ${if(u>l)"upp" else "low"}ercase"}

ব্যবহার

fun String.y():String =let{var u=0.0
var l=0.0
forEach{when{it.isUpperCase()->u++
it.isLowerCase()->l++}}
"${maxOf(u,l)/(u+l)} ${if(u>l)"upp" else "low"}ercase"}

fun main(args: Array<String>) {
    println("PrOgRaMiNgPuZzLeS & CoDe GoLf".y())
    println("DowNGoAT RiGHtGoAt LeFTGoat UpGoAT".y())
    println("Foo BaR Baz".y())
}

1

পাইথ, 40 39 বাইট

Jml@dQrBG1+jdeS.T,cRsJJc2."kw񽙽""ercase

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

ব্যাখ্যা

Jml@dQrBG1+jdeS.T,cRsJJc2."kw񽙽""ercase
 m    rBG1                                For the lower and uppercase alphabet...
  l@dQ                                    ... count the occurrences in the input.
J                 cRsJJ                   Convert to frequencies.
               .T,     c2."kw񽙽"          Pair each with the appropriate case.
             eS                           Get the more frequent.
          +jd                    "ercase  Stick it all together.

1

পাওয়ারশেল কোর , 134 128 বাইট

Filter F{$p=($_-creplace"[^A-Z]",'').Length/($_-replace"[^a-z]",'').Length;$l=1-$p;(.({"$p upp"},{"$l low"})[$p-lt$l])+"ercase"}

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

ধন্যবাদ, ভেস্কাহ , ফাংশনটিকে ফিল্টারে রূপান্তর করে ছয়টি বাইট সংরক্ষণের জন্য!


1
আপনি কোনও ফাংশনের পরিবর্তে ফিল্টার তৈরি করে দুটি ফ্রি বাইট সংরক্ষণ করতে পারেন, অর্থাৎ এফ (কোড) ফিল্টার করুন
ভেস্কাহ

আমি কখনই জানতাম না এটা একটা জিনিস! ধন্যবাদ, ভেস্কাহ!
জেফ ফ্রিম্যান 14


1

এপিএল (এনএআরএস), 58 চর, 116 বাইট

{m←+/⍵∊⎕A⋄n←+/⍵∊⎕a⋄∊((n⌈m)÷m+n),{m>n:'upp'⋄'low'}'ercase'}

পরীক্ষা:

  h←{m←+/⍵∊⎕A⋄n←+/⍵∊⎕a⋄∊((n⌈m)÷m+n),{m>n:'upp'⋄'low'}'ercase'}
  h "PrOgRaMiNgPuZzLeS & CoDe GoLf"
0.52 uppercase
  h "DowNGoAT RiGHtGoAt LeFTGoat UpGoAT"
0.5806451613 uppercase
  h "Foo BaR Baz"
0.5555555556 lowercase

1

সি, 120 বাইট

f(char*a){int m=0,k=0,c;for(;isalpha(c=*a++)?c&32?++k:++m:c;);printf("%f %sercase",(m>k?m:k)/(m+k+.0),m>k?"upp":"low");}

পরীক্ষা এবং ফলাফল:

main()
{char *p="PrOgRaMiNgPuZzLeS & CoDe GoLf", *q="DowNGoAT RiGHtGoAt LeFTGoat UpGoAT", *m="Foo BaR Baz";
 f(p);printf("\n");f(q);printf("\n");f(m);printf("\n");
}

ফলাফল

0.520000 uppercase
0.580645 uppercase
0.555556 lowercase

এটি ধরুন আসকি চরিত্র সেট।



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