একটি শব্দে অক্ষরগুলি 'যোগ' করুন


17

আমার বাবা একজন অবসরপ্রাপ্ত শিক্ষক, এবং তিনি সম্মিলিত বানান এবং গণিত কুইজ দিতেন, যেখানে শিক্ষার্থী একটি শব্দ বানান করত এবং তারপরে অক্ষরগুলি যুক্ত করে শব্দটি 'স্কোর' করে, যেখানে a = 1, খ = 2 ইত্যাদি। (যেমন বিড়াল = 3 + 1 + 20 = 24)। এটি কুইজের গ্রেডিংকে আরও সহজ করে দিয়েছে, কারণ তাকে ভুল বানান শব্দের চেয়ে ভুল 'স্কোর' পরীক্ষা করতে হবে এবং একবারে 2 দক্ষতা পরীক্ষার যুক্ত সুবিধা ছিল।

তিনি আমার এক বন্ধুকে এমন একটি প্রোগ্রাম লেখার জন্য নিয়োগ দিয়েছিলেন যা তার পক্ষে শব্দ স্কোর করে, যাতে সে ত্রুটি ছাড়াই দীর্ঘ উত্তর কী তৈরি করতে পারে। এই সমস্যাটি সেই প্রোগ্রামটি দ্বারা অনুপ্রাণিত হয়।

প্রয়োজনীয়তা:

  1. বড় হাতের অক্ষর এবং ছোট হাতের অক্ষর সহ যে কোনও শব্দ গ্রহণ করুন
  2. কোনও বিশেষ অক্ষরের জন্য ত্রুটি ফিরিয়ে দিন, যেমন স্পেসস, হাইফেনস, @ ^% # ইত্যাদি
  3. a = 1, খ = 2, ... এবং এ = 1, বি = 2, ...
  4. শব্দটির স্কোর মুদ্রণ করুন
  5. (Alচ্ছিক) শব্দটি স্কোর করার পরে অভিধানে আছে কিনা তা পরীক্ষা করে দেখুন এবং যদি এটি না হয় তবে সতর্কতা মুদ্রণ করুন।
  6. বাহ্যিক অক্ষর-> নম্বর অভিধান আমদানি করা হচ্ছে না। আপনাকে অবশ্যই এটি তৈরি করতে হবে।

যে কোনও ভাষা গ্রহণযোগ্য। এটি ' ডিজিটাল রুট যুদ্ধের ' মতো, তবে অনেক সহজ।


2
এটি কি কোনও কোড গল্ফ হওয়ার কথা?
পিটার টেলর

2
@ জ্যাচ code-golfট্যাগ ব্যবহার করে ।
লোজ্যাকার

2
আপনার বাবা কি "সি পরে ছাড়া ই এর আগে" নিয়ম শেখানোও বিরক্ত করেছিলেন?
নাথান মেরিল

2
হ্যাঁ, শুধুমাত্র স্কোর পরীক্ষা করা? আমি বিড়াল বানান হিসাবে aaaaaaaaaaaaaaaaaaaaaaaa। বাবা: স্কোর 24? সেটা ঠিক!
ericw31415

3
@ ericw31415 প্রতিটি হ্যাশিং ফাংশনের সংঘর্ষ রয়েছে ;-)। এখনও অবধি তার কোন শিক্ষার্থী সেই আক্রমণকারী ভেক্টরটি ব্যবহার করতে পারেনি
জ্যাচ

উত্তর:


8

গল্ফস্ক্রিপ্ট - 23 টি অক্ষর

0\{.31&.(.26%=@64///+}/

নিশ্চিত হয়ে নিন যে ইনপুটটিতে কোনও চলমান নিউলাইন নেই (যেমন ব্যবহার echo -n)।


আমরা একটি নতুন বিজয়ী আছে!
জাচ

সাধারণত, বাহ্যিক ফিল্টারিং কোনওভাবেই অক্ষর গণনায় অন্তর্ভুক্ত বলে মনে করা হয় (Ctrl-f বহিরাগত ফিল্টারিং)), যদিও আমি ধরে নিই এটি ছাড়া কেবল 2 অতিরিক্ত অক্ষর রয়েছে।
জেসি মিলিকান

2
@ জেসি: echo -nসত্যই বাহ্যিক ফিল্টারিং হিসাবে গণনা করা যায় না - বাস্তবে আপনি যে উত্তরটি যুক্ত করেছেন সেটিকে ইনপুটটির জন্য বৈধ ফর্ম হিসাবে বোঝায়।
নবিব

10

ব্রেইনফ *** (100)

>+[>,---------]<[<]>>
[--------------------
---------------------
-------------->]<[[[<
]>+[>]<->]<<]>-.

যদিও আমাকে স্বীকার করতে হবে, এটি সমস্ত প্রয়োজনীয়তার সাথে পুরোপুরি মেনে চলে না। প্রথমত, এটি কেবলমাত্র মূল অক্ষর গ্রহণ করে এবং শব্দটি একটি ট্যাব দিয়ে শেষ করতে হবে। এটিতে অবৈধ অক্ষরগুলির জন্য নির্ধারিত আচরণ রয়েছে এবং এটি ত্রুটি ছুঁড়ে না। এটি ASCII চরিত্র হিসাবে অক্ষরের যোগফল প্রদর্শন করে। উদাহরণস্বরূপ, যদি শব্দটি "হেল্লো" হয়, তবে (8 + 5 + 12 + 12 + 15 = 52) এটি "4" অক্ষরটি প্রদর্শন করবে যা 52 এর জন্য ASCII অক্ষর This যোগফল 255 এরও বেশি।

তবে এগুলি ছাড়াও এটি ঠিক কাজ করে। আমাকে বিরতি দিন, আমার মস্তিষ্ক কেবলমাত্র ... এর ছোট ছোট ডোজগুলি পরিচালনা করতে পারে you


নতুন লাইনের পরিবর্তে কেন ট্যাব দিয়ে শব্দটি শেষ করবেন?
লোজ্যাকার

@Lowjacker TAB এর কারণ আমি ভেবেছিলাম সম্পর্কে উদ্বেজক তুলনায় আরো সহজ \nবা \r\nবা \n\r। এবং যদি আমি নিউলাইন ব্যবহার করি তবে চরিত্রের গণনা হিসাবে আমার মতো 100 এর মতো সুন্দর গোল সংখ্যাটি নেই।
পিটার ওলসন

আপনি যদি একটি বড় ডোজ পেয়ে থাকেন তবে কী হবে?
মতিন উলহাক

8

পাইথন ( 65 64)

print sum(['',ord(i)-64]['@'<i<'[']for i in raw_input().upper())

শব্দটিতে অক্ষরযুক্ত অক্ষর থাকলেও এটি সহায়ক বা তথ্যবহুল না থাকলে এটি একটি ত্রুটি উত্থাপন করে। (সম্পাদনা করুন: ইনডেক্সিং ট্রিকের জন্য টুপিটি টিপুন 0)


1
print sum(['',ord(i)-64]['@'<i<'[']for i in raw_input().upper())কয়েকটা অক্ষর শেভ করলেন
st0le

আসলে একটি চর আসলে। : - \
st0le

ব্যবহার করে 4 টি অক্ষর সংরক্ষণ করুন input; ব্যবহারকারীকে ইনপুট স্ট্রিংগুলির চারপাশে উদ্ধৃতি স্থাপন করতে বাধ্য করে, তবে "ব্যবহারকারী-বান্ধব" এবং "বিপজ্জনক নয়" কোনও অনুমানের মধ্যে নেই!
jscs

ঠিক আছে, কেবল পাইথন 3 এ এটি পরিবর্তন করুন! raw_inputinput
ওলেহ প্রাইপিন

print sum([i,ord(i)-64]['@'<i<'[']for i in raw_input().upper()) আরেকটি বাইট চাঁচা
আলেকজান্ডার নিগল

8

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

$_=gets.upcase;p~/[^A-Z]/?_: $_.sum-64*~/$/

যদিও এই ত্রুটি বার্তাটি উত্পন্ন হয় ঠিক তেমন সহায়ক নয়। এখানে পোস্ট করা উভয় সমাধানই ধরে নিচ্ছে ইনপুটটির কোনও পিছনের লাইনব্রেক নেই, তাই তাদের পরীক্ষা করতে, ব্যবহার করুন echo -n

রুবি, অভিধান চেক সহ 76 টি অক্ষর

l=STDIN.gets;$_=l.upcase;p~/[^A-Z]/?_: $_.sum-64*~/$/;[*$<].index(l)||$><<?W

সতর্কতা বার্তাটিতে "ডাব্লু" একক অক্ষর রয়েছে। অভিধানে যাওয়ার পথটি এআরজিভি এর মাধ্যমে সরবরাহ করতে হবে। ব্যবহারের উদাহরণ:

$ echo -n asd | ruby addletters.rb /usr/share/dict/words
24
W
$ echo -n cat | ruby addletters.rb /usr/share/dict/words
24

2
আপনি ত্রুটি বার্তাকে বিস্মৃতকরণের চিহ্ন হিসাবে অভিধান চেক সংস্করণে 9 টি অক্ষর কেটে ফেলতে পারেন।
পিটার ওলসন

আপনি অভিধানের পরীক্ষার সাহায্যে স্বল্পতম প্রবেশের জন্য সান্ত্বনা পুরস্কার পান। যাওয়ার পথে!
জাচ

অভিধান পরীক্ষার প্রস্তাব দেওয়া হয়েছিল কেন যদি এটি আপনাকে কোনও প্রকৃত প্রান্ত না দেয় (বিপরীতে, এটি কেবল কোডটি ফুলেছে)?
সহায়ক পদ্ধতি 17

5

পাইথন ২.6 (Cha২ অক্ষর) অভিধান পরীক্ষা ছাড়াই

print sum(map(" abcdefghijklmnopqrstuvwxyz".index, raw_input().lower()))

পাইথন ২.6 (১8৮ অক্ষর *) অভিধানের চেক সহ

w=raw_input().lower()
print sum(map(" abcdefghijklmnopqrstuvwxyz".index, w))
if w not in open('/usr/share/dict/american-english').read().split():
 print('Word not in dictionary')

* কম সহায়ক ত্রুটি বার্তা সহ 156 এ নামানো যেতে পারে। :-)

এটির উন্নতিতে সহায়তার জন্য সমস্ত মন্তব্যকারীকে ধন্যবাদ।


আপনি sumকোনও forলুপের পরিবর্তে জেনারেটর এক্সপ্রেশন দিয়ে বিল্টিনটি ব্যবহার করার বিষয়টি বিবেচনা করতে চাইতে পারেন । এটি আপনাকে কয়েকটি চর ছাঁটাতে দেবে (~ 17)।

@ জ্লো: এটিকে নির্দেশ করার জন্য ধন্যবাদ।
জন

মুদ্রণের প্রথম বন্ধনীগুলি মুছে ফেলা যায়
st0le

মনে হচ্ছে আপনি aকেবল একবার ব্যবহার করছেন , সুতরাং আক্ষরিক ব্যবহার করুন ... "0abc....z".index(i)সমানভাবে কাজ করবে।
st0le

0আপনার স্কোরিং অ্যারের মধ্যে চালাক, কিন্তু এটি এর মানে হল যে cat0ত্রুটি, যা ঠিক নয় ছাড়া গৃহীত, আমি মনে করি। যা খুব খারাপ, যেহেতু এটি map(a.index,w)আপনাকে sumপরিবর্তে পাস করার অনুমতি দেবে ( aস্টেটেল প্রস্তাবিত হিসাবে আক্ষরিক প্রতিস্থাপন )।

4

পার্ল (52) (48)

টিমউইকে আরও ধন্যবাদ জানালেন

perl -lpe "($w=uc)=~/[^A-Z]/&&die;$w=~s/./$_-=64-ord$&/ge"


আপনি -eসেখানে পতাকা মিস করছেন ।
লোজ্যাকার

1
আপনার চরিত্রের গণনায় অন্তত আপনার pএবং lদোভাষী পতাকাগুলি অন্তর্ভুক্ত করা উচিত । দেখুন এই আলোচনা মেটা উপর।
ভেন্টোরো

syntax error at -e line 1, near "(=" Execution of -e aborted due to compilation errors.আমি কি ভুল করছি?
ব্যবহারকারী অজানা

আপনি যদি ইউনিক্সে চলছেন তবে একককে ডাবল কোট পরিবর্তন করুন
চীনা পার্ল গোথ

@ টিমউই: 'বড় হাতের অক্ষর এবং ছোট হাতের অক্ষরের সাথে কোনও শব্দ গ্রহণ করুন' দুঃখিত, দুঃখিত। আমি এখন এটি মুছে ফেলেছি। @ চিনিস: হ্যাঁ, ধন্যবাদ, একক উদ্ধৃতি সহ এটি ঠিক আছে। যতক্ষণ আমি নিজেকে এসকি ইনপুটটিতে সীমাবদ্ধ রাখি। :)
ব্যবহারকারী অজানা

4

পাইথন (৮০)

w=raw_input().lower()
s=0
for l in w:s+=range(97,123).index(ord(l))+1
print s

পাইথন ভি 2 (65 তবে চর accepted গৃহীত হবে)

print sum(map(range(96,123).index,map(ord,raw_input().lower())))

ভি 3 (60 টি অক্ষর, @ গৃহীত হবে তবে গণনা করা হবে না, ধন্যবাদ জ্লো)

print sum(map(range(64,91).index,map(ord,input().upper())))

ইঙ্গিত: আপনার সমাধান থেকে আরও বেশি কিছু সরানোর উপায়। :)

2
@ jloy কি সহায়ক 'ইঙ্গিত'। ;)
মতিন উলহাক

4

স্কেল: 59 টি চর, এর মধ্যে 7 টি পেডলোড, কোনও ডিক:

(0/:"Payload".map(c=>if(c.isLetter)(c-'A')%32 else-999))(_+_)
67

এখন পর্যন্ত কোনও অভিধান নেই। নেতিবাচক ফলাফলের অর্থ: নেতিবাচক!

(0/:"Pay!wall?".map(c=>if(c.isLetter)(c-'A')%32 else-999))(_+_)   
-1915

জার্মান উমলাউতকে কৃপণভাবে, পরিচালনা করে:

(0/:"Müllrößchen".map(c=>if(c.isLetter)(c-'A')%32 else-999))(_+_)
155

বাহ, পার্ল সংস্করণের চেয়ে কম অক্ষর (এবং আরও বেশি পঠনযোগ্য)।
সহায়তার পদ্ধতি

আমি শিঙ্কিরো এবং চাইনিস-পার্ল-সলিউশন চেষ্টা করেছি, কিন্তু তারা আমার পক্ষে কাজ করে নি। এগুলি হিসাবে সংরক্ষণ করে alpha.plএবং সেগুলি দিয়ে শুরু করে perl alpha.pl। এরা কি শুধু এসকি হ্যান্ডেল করে? ভাল - পার্ল এ এমন একটি পুরাতন জন্তু ... :)
ব্যবহারকারী অজানা

পার্ল এবং ইউনিকোড একটি বড় জগাখিচুড়ি। আপনাকে সম্ভবত তাদের চালাতে হবে perl -M5.010 alpha.plবা এর মতো কিছু।
পিটার টেলর

আমি শুনেছি লিনাক্সে আমার ডাবল উদ্ধৃতিগুলির পরিবর্তে একক উদ্ধৃতি প্রয়োজন এবং এটি কার্যকর, ধন্যবাদ।
ব্যবহারকারীর অজানা

4

জাভা + গুগল পেয়ারা লাইব্রেরি, 343 অক্ষর, অভিধানের চেক সহ

অপঠনযোগ্য 1 টি দীর্ঘ স্ট্রিং সংস্করণ :-)

import java.io.*;import com.google.common.base.*;import com.google.common.io.*;class C{public static void main(String[]a)throws Exception{int s=0;for(int c:a[0].toUpperCase().toCharArray()){assert(c>64&&c<91);s+=c-64;}String d=Files.toString(new File(a[1]),Charsets.UTF_8);if(StringUtils.containsIgnoreCase(d,a[0]))System.out.println("w");System.out.println(s);}}

মানব-পঠনযোগ্য সংস্করণ (ধরণের :-))

import java.io.*;

import com.google.common.base.*;
import com.google.common.io.*;

class C {
    public static void main(String[] a) throws Exception {
        int s=0;

        for(int c : a[0].toUpperCase().toCharArray()) {
            System.out.println(c);
            assert(c > 64 && c < 91);
            s += c - 64;
        }

        String d = Files.toString(new File(a[1]), Charsets.UTF_8);

        if (d.contains(a[0])) System.out.println("w");

        System.out.println(s);
    }
}

অভিধানের পথটি এখন পেরিয়ে গেছে a[1], কাজটি করার জন্য আপনার -eaপতাকাটি ব্যবহার করতে হবে (+3 আরও অক্ষর) ser অভিধান হিসাবে, ডিক /usr/share/dict/words(বেশিরভাগ * নিক্স সিস্টেমে উপলব্ধ হওয়া উচিত) ব্যবহৃত হয়েছে।


এখন পর্যন্ত আপনি অভিধানের চেক সহ একমাত্র, সুতরাং +1
জ্যাচ

এক লাইন? এটি বিশেষভাবে এইভাবে পাঠযোগ্য নয়, যদিও আমার ধারণা এটি চরগুলি সাশ্রয় করে
নাট কোপ্পেনহেভার

আমি আরও পঠনযোগ্য সমাধান যুক্ত করব (এবং বয়লারপ্লেট কোড হ্রাস করতে গুগল পেয়ারা ব্যবহার করাও একটি স্বল্প) one
সহায়ক পদ্ধতি

আপনি কেবল আসকি অনুমতি দিচ্ছেন, তবে চরসেট.আউটএফ -8 ব্যবহার করবেন?
ব্যবহারকারী অজানা

1
কারণ স্ট্রিং UTF-8অন্যান্য অক্ষরগুলির চেয়ে কম :-)।
সহায়তার পদ্ধতি

4

পাইথন 3, 95 সহ অভিধান রয়েছে

d=input().lower()
print(d in open("d").read()and sum(['',ord(c)-96]['`'<c<'{']for c in d)or'f')

অভিধানটি d নামক একটি ফাইলে থাকতে হবে।

পাইথন 3, 61 অভিধান ছাড়া, তবে চুরি ধারণা

print(sum(['',ord(c)-96]['`'<c<'{']for c in input().lower()))


3

ভিবি.এনইটি, 84 82 73 71

Console.Write(Console.ReadLine.Sum(Function(c)Asc(Char.ToUpper(c))-64))


সম্পাদনা: বৈধতা সহ:

Dim r=Console.ReadLine
Console.Write(If(r.All(AddressOf Char.IsLetter),r.Sum(Function(c)Asc(Char.ToUpper(c))-64),"Invalid input."))

129 টি অক্ষর। কোন ক্ষেত্রে:

সি #, 118

var r=Console.ReadLine();Console.Write(r.All(char.IsLetter)?r.Sum(c=>char.ToUpper(c)-64).ToString():"Invalid input.");

1
এটি ইনপুটটিকে বৈধতা দেয় না।
লোজ্যাকার

ওহো! এক সেকেন্ড ধরে রাখুন ...
রাই-

3
আমি মনে করি আপনার সম্পূর্ণ প্রোগ্রাম সরবরাহ করা উচিত। আপনার সি # সমাধান সংকলন করে না; আপনার এটি একটি শ্রেণীর ঘোষণার ভিতরে একটি মেইন পদ্ধতিতে স্থাপন এবং সমস্ত অক্ষর গণনা করা দরকার।
টিমউই

1
না, কারণ এই কোডটি কিছু করে না এবং অবজেক্ট-ওরিয়েন্টেড ভাষার ব্যবহারকারীদের পক্ষে বঞ্চনা করা মোটেই উপযুক্ত নয়। এটি যাইহোক সি / ভিবি.এনইটি বৈধ।
রাই-

3

জন এর উত্তরে সামান্য উন্নতি: পাইথন (90)

s=0
for i in raw_input().lower():
 s+=("abcdefghijklmnopqrstuvwxyz".index(i)+1)
print(s)

2
স্ট্রিং শুরুতে ডামি চর যুক্ত করা সংক্ষিপ্ত ... বন্ধনীগুলি সরানো যেতে পারে
st0le

3

এরলং, 104

a()->
a(string:to_lower(io:get_line([])),0).
a([_|[]],S)->
S;
a([C|R],S) when C<${, C>=$`->
a(R,S+C-$`).

3

গল্ফস্ক্রিপ্ট - 39 টি অক্ষর

n%~{.96>{96}{64}if-..26>\0<|{0/}*}%{+}*

যে ত্রুটিটি এটি ফেলেছিল তা হ'ল সেরা নয়, তবে ওহে, এটি কার্যকর করে না।


আমি গল্ফস্ক্রিপ্ট সম্পর্কে কিছুই জানি না, তাই আমি এটি প্রয়োজনীয়তাগুলি গ্রহণ করে এবং আপনাকে বিজয়ী হিসাবে ঘোষণা করব!
জাচ

উফফফ, তোমাকে মারতে হবে! আমার ধারণা 2 দিনের কোনও কোড গল্ফের জন্য অপেক্ষা করার পক্ষে যথেষ্ট নয়?
জাচ

3

পাইথন 62 68 * অক্ষর

print sum(map(chr,range(65,91)).index(c)+1 for c in input().upper())

ব্যবহারকারীর উক্তি ব্যবহার করে স্ট্রিংগুলি ইনপুট করতে প্রয়োজন, এবং এটি নিরাপদ নয় ( inputকোড কার্যকর করে), তবে, যেমন আমি অন্য পোস্টে একটি মন্তব্যে বলেছিলাম, "ব্যবহারকারী-বান্ধব" এবং "কোনও সুরক্ষা ঝুঁকি নয়" অনুমানের মধ্যে নেই!


* আমি সম্পর্কে ভুলে গেছি print, শালা।


jloy এর উত্তর এখনও কম, আসলে input/ raw_inputপার্থক্যের কারণে।
jscs

2

রুবি 1.9, 69

w=gets.chop.upcase
w[/[^A-Z]/]&&fail
p w.bytes.inject(0){|s,b|s+b-64}

কেবল আসকি চরিত্রগুলি পরিচালনা করে। আমি ভেবেছিলাম রুবি আমাদের সেঞ্চুরি থেকে এসেছে? :)
ব্যবহারকারী অজানা

@ ব্যবহারকারী অজানা: অনুমানটি বলে না যে এটি আছে। এটি করা বরং জটিল হবে ...
লোজ্যাকার

2

গল্ফস্ক্রিপ্ট, 50 (53)

খারাপ চরিত্রগুলিতে ত্রুটি দেয় তবে খুব ভাল একটি নয় (৫০ টি অক্ষর):

);[{""123,97>+91,65>+?}/].-1?0<{{26%1+}%{+}*}{@}if

পরিবর্তে ত্রুটিতে "E" দেয় (53 টি অক্ষর):

);[{""123,97>+91,65>+?}/].-1?0<{{26%1+}%{+}*}{;"E"}if

বর্ণমালা তৈরির স্নিপেট 123,97>+ভেন্টোরো থেকে চুরি হয়ে গেছে।


2

জে (55)

+/64-~-&32`]@.(<&97)`_:@.(<&65)`_:@.(>&122)"0,I.a.&e."0

এটি অভিধান ছাড়াও সমস্ত শর্ত পূরণ করে। ত্রুটির শর্ত হিসাবে, এটি অক্ষর ব্যতীত যে কোনও শব্দ রয়েছে এমন শব্দের জন্য "অনন্ত" (জেতে আন্ডারস্কোর প্রতীক) প্রদান করে।


2

হাস্কেল (127)

(অদ্ভুত চরিত্রগুলিতে একটি ত্রুটি উত্থাপন করে)
(এছাড়াও: এর মধ্যে স্থানটি প্রয়োজন হয় toUpper.এবং \xঅন্যথায় এটি যেমনটিকে পার্স করে তোলে (toUpper) .\ (x))

import Char
main=getLine>>=putStrLn.show.sum.(map$(-65+).ord.toUpper. \x->if x`elem`['A'..'Z']++['a'..'z']then x else error"")

হাস্কেল (70)

(কোনও ত্রুটি বাড়ায় না, তবে 45% কম)

import Char
main=getLine>>=putStrLn.show.sum.(map$(-65+).ord.toUpper)

2

সি ++ ( 111 107)

void main(){int a=0;s8*b=new s8[99];for(cin>>b;*b;)if(isalpha(*b))a+=tolower(*b++)-96;else return;cout<<a;}

"সেট আপ" / ইত্যাদি:

#include <iostream>
#include <cstdio>
#include <cctype>

#ifdef _MSC_VER
    typedef __int8 s8;
#else
    typedef signed char s8;
#endif

"অপরিজ্ঞাত" আচরণ (এটি 'অপরিজ্ঞাত' এর চেয়ে 'খারাপ অভ্যাস' বেশি, তবে ওহ ভাল):

  • void main() এটা সব বলে।
  • আমি newছাড়া ব্যবহার করছি delete

1

জাভাস্ক্রিপ্ট 1.8, 80 টি অক্ষর

আশ্চর্যরূপে পাঠযোগ্য!

alert(Array.reduce(prompt().toLowerCase(),function(a,b)a+b.charCodeAt(0)-96,0))

ক্রোম আমি ব্যবহারের জন্য এটা একটু রূপান্তর ছিল: alert(prompt().toLowerCase().split("").reduce(function(a,b){return a+b.charCodeAt(0)-96},0))। আমি এখনও জাভাস্ক্রিপ্ট সমাধানগুলি সবচেয়ে পছন্দ করি :)
pimvdb

আপনি অবৈধ চরিত্রটি করলে এটি ত্রুটি ফেরায় না ???
ericw31415

1

এপিএল (34)

+/{⍵∊⍳26:⍵}¨{64-⍨A-32×96<A←⎕UCS⍵}⍞

স্কোর দেয়, বা একটি VALUE ERROR যদি ইনপুটটিতে বর্ণমালাবিহীন অক্ষর থাকে।

ব্যাখ্যা:

  • : ইনপুট একটি লাইন পড়ুন
  • {...} : ইনপুট প্রতিটি চরিত্রের জন্য ফাংশন প্রয়োগ করা হয়
  • A←⎕UCS⍵: বর্তমান অক্ষরের ASCII মান সংরক্ষণ করুন A
  • A-32×96<A: অক্ষর বড় হাতের বানান: A32 থেকে বিয়োগ করা হয় যদি96<A (তাই, যদি এটি বড় হয়), অন্যথায় 0
  • 64-⍨: এ থেকে 64 বিয়োগ করুন, এ = 1, বি = 2 প্রদান করে ...
  • ¨: প্রতিটি চরিত্রের জন্য এই ফাংশন প্রয়োগ করুন:
  • ⍵∊⍳26: চরিত্রটি যদি 1 এবং 26 এর মধ্যে হয় ...
  • :⍵: তারপরে ফিরে যান ⍵ (এবং যেহেতু আর কোনও ধারা নেই সেখানে a VALUE ERROR কারণ এটি 1 থেকে 26 এর মধ্যে না হয়)
  • +/: সমস্ত মান একসাথে যোগ করুন (এবং এই মানটি স্বয়ংক্রিয়ভাবে আউটপুট হয়ে যায় কারণ এটি চূড়ান্ত ফলাফল)।

1

জাভাস্ক্রিপ্ট, 60 বাইট

s=>[...s.toUpperCase()].reduce((a,b)=>a+b.charCodeAt()-64,0)

যদি প্রোগ্রামটি অবশ্যই অবৈধ ইনপুটগুলিতে কোনও ত্রুটি ফেরায়, তবে 80 বাইট:

s=>/[^a-z]/i.test(s)?_:[...s.toUpperCase()].reduce((a,b)=>a+b.charCodeAt()-64,0)

যদি কোনও ইনপুট অবৈধ হয়, তবে কনসোলটি বলবে যে _এটি সংজ্ঞায়িত নয় (অবশ্যই ইতিমধ্যে কোনও ভেরিয়েবল সংজ্ঞায়িত হওয়া উচিত নয় _)।


1

পাইথন 3, 58 55

print(sum(ord(x)%32for x in input()if x.isalpha()or z))

অভিধান বা চুরি ধারণা ছাড়া তবুও ত্রুটিযুক্ত ত্রুটি;)

thx @ Eᴀsᴛᴇʀʟʏ

পরীক্ষা এখানে


আমি মনে করি আপনি পাইথন 2 এ স্যুইচ print<SPACE>sum(ord(.......করে এবং অভিব্যক্তির চারপাশে 2 টি প্রথম বন্ধনী সরিয়ে একটি বাইট সংরক্ষণ করতে পারেন ।

@ EᴀsᴛᴇʀʟʏIʀᴋ ঠিক আছে তবে ইনপুটটি প্রথম বন্ধনে থাকতে হবে এবং আমি পাইথন 2% প্রচার করতে চাই না)
আলেকজান্ডার নিগল

পাইথন 2 জীবন! এবং এছাড়াও, আমি মনে করি না যে এর জন্য ইনপুটটির প্রথম বন্ধনীর প্রয়োজন হবে?

@ EᴀsᴛᴇʀʟʏIʀᴋ sry আমার অর্থ উদ্ধৃত। input()পাইথন 3 raw_input()পাইথন 2
আলেকজান্ডার

ওহ আমি ভুলে গেছি. হুঁ।
আর



1

বৈধতা সহ সি #: 108 টি অক্ষর (ত্রুটির বার্তার জন্য 12 সহ):

var s=Console.ReadLine();Console.Write(s.All(Char.IsLetter)?s.Sum(x=>x&'_'-'@').ToString():"Invalid input");

সি # বৈধতা ছাড়াই: 60 53 টি অক্ষর:

Console.Write(Console.ReadLine().Sum(x=>x&'_'-'@'));

1
বৈধতা ছাড়াই দ্বিতীয়টিতে, আপনি গুলি ভেরিয়েবল ঘোষণাটি সরিয়ে এবং কনসোল.আডলাইন () ইনলাইন ব্যবহার করে অক্ষরগুলিকে আরও কমিয়ে আনতে পারেন।
হার্মিওড

1

পার্ল (42 31)

perl -F -pale '$c+=ord(uc$_)-64for@F;$_=$c'

আমি আশা করি F, p, a এবং l কে 1 টি অক্ষর হিসাবে গণনা করা সঠিক ছিল।


1

জাভাস্ক্রিপ্ট, 68 বাইট

এটি প্রায় আরও গল্ফ করা যেতে পারে

w=>[...w.toLowerCase()].map(v=>v.charCodeAt()-96).reduce((a,b)=>a+b)

অভিধান চেক সহ (কেবল নোড.জেএস এবং ইউনিক্স বংশদ্ভুত) 195 বাইট

ব্যবহার করে /usr/share/dict/words, এবং স্পষ্টভাবে সংক্ষিপ্ত করা যেতে পারে (সতর্কতা বার্তা দেখুন)

w=>(require("fs").readFile("/usr/share/dict/words",(e,t)=>!(t+"").split`
`.includes(w=w.toLowerCase())&&console.warn(w+" not found in dict")),[...w].map(v=>v.charCodeAt()-96).reduce((a,b)=>a+b))

একটি ত্রুটি বার্তার জন্য, আপনি না console.error(), না console.warn()
ericw31415

তবে চ্যালেঞ্জটি সতর্ক করতে বলেছিল (৫. (
ptionচ্ছিক

@ স্পেডিনিজা আমার মনে হয় এটি এখনও গণনা করা, এটি আসলে চ্যালেঞ্জের মূল বিষয় নয় ...
Rɪᴋᴇʀ

@ EᴀsᴛᴇʀʟʏIʀᴋ এটি 1 টি চরিত্রের চেয়ে ছোট;)
মেয়রমন্টি

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