একটি স্ট্রিংকে লোয়ার-কেসে রূপান্তর করা (বিল্ট-ইন-লো-ফাংশন ব্যতীত!)


25

এই কোড-গল্ফের লক্ষ্য হ'ল এমন একটি কোড তৈরি করা যা ব্যবহারকারীকে একটি ASCII স্ট্রিং ইনপুট করতে দেয় (কেবল মুদ্রণযোগ্য ASCII অক্ষর ধারণ করে ) এবং আপনার প্রোগ্রামটি এই স্ট্রিংয়ের লোয়ার-কেস রূপটি আউটপুট করে।

গুরুত্বপূর্ণ: আপনাকে একটি বিল্ট-ইন ফাংশন ব্যবহার করার অনুমতি নেই যা স্ট্রিংকে (বা কেবল একটি চরিত্রকে) ছোট হাতের কাছে রূপান্তর করে (যেমন পিএইচপি-তে, ToLower()নেট strtolower()মধ্যে, ...)! তবে আপনাকে অন্য সমস্ত অন্তর্নির্মিত ফাংশনগুলি ব্যবহার করার অনুমতি দেওয়া হয়েছে।

আর একটি গুরুত্বপূর্ণ নোট: ইনপুট স্ট্রিংয়ে কেবল বড় হাতের অক্ষর থাকে না । ইনপুট স্ট্রিংটি বড় হাতের অক্ষর, ছোট হাতের অক্ষর, সংখ্যা এবং অন্যান্য ASCII মুদ্রণযোগ্য অক্ষরের মিশ্রণ ।

শুভকামনা!


4
দুর্ভাগ্যক্রমে, আমাকে অপ্ট-আউট করতে হবে। আমি কোনও শিক্ষানবিস নই।
জন ডিভোরাক

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

1
নিয়মিত অভিব্যক্তি অনুমোদিত? কেবল গল্ফস্ক্রিপ্টই পরাজিত করতে পারে s/./\L\0/g
manatwork

3
@ মানাতকর্ম: নিশ্চয়ই \Lঅন্তর্নির্মিত?
মেরিনাস

@ মান্যাটওয়ার্ক: হ্যাঁ, একটি রেজেক্স অনুমোদিত allowed
ProgramFOX

উত্তর:


21

শেল - 10

@ গৌতমের পার্ল সমাধান ব্যবহার করে অনুবাদ /bin/tr

tr A-Z a-z

নমুনা রান:

% tr A-Z a-z <<<'Hello WORLD! @'
hello world! @

কৌতূহল ছাড়াই কী এটিকে গ্রহণযোগ্য উত্তর দেয়?
গোথামের

1
মেটা সম্পর্কিত আলোচনার উপর ভিত্তি করে মনে হচ্ছে যুক্তিটি হ'ল গৌতমের সমাধানটি 11 টি অক্ষর (কারণ -pপতাকাটি এক হিসাবে গণনা করা হয়)। যদিও আমি একমত, তার মতো মনে হচ্ছে এটি গ্রহণযোগ্যতার চেয়ে বেশি দাবিদার ..
ফায়ারফ্লাই

আহ, ধন্যবাদ - এটা বোঝা যায়। আমি এটা মাথায় রাখব!
রাই-

53

পাইথন ২.7 - ৩০ (ভয়ানক এবং অযৌক্তিক নিয়মের অপব্যবহার সহ)

raw_input().upper().swapcase()

বেনামে সম্পাদনা হিসাবে উল্লেখ করা হয়েছে, আপনি এটি এতে করতে পারেন 27পাইথন 3 এ 26 :

input().upper().swapcase()

আমি এখানে নিয়মগুলি সুস্পষ্টভাবে গালি দিচ্ছি, কিন্তু ...

গুরুত্বপূর্ণ: আপনাকে একটি বিল্ট-ইন ফাংশন ব্যবহার করার অনুমতি নেই যা স্ট্রিংকে (বা কেবল একটি চরিত্রকে) ছোট হাতের কাছে রূপান্তর করে (যেমন পিএইচপি-তে, ToLower()নেট strtolower()মধ্যে, ...)! তবে আপনাকে অন্য সমস্ত অন্তর্নির্মিত ফাংশনগুলি ব্যবহার করার অনুমতি দেওয়া হয়েছে।

এটি স্ট্রিংগুলি নেয় এবং এটিকে আপার ক্ষেত্রে আবদ্ধ করে । তারপরে একটি অত্যন্ত সম্পর্কযুক্ত পদ্ধতিতে, এটি স্ট্রিংয়ের ক্ষেত্রে বিপরীত হয় - যাতে কোনও ছোট ক্ষেত্রে বর্ণগুলি বড় হাতের অক্ষরে পরিণত হয় ... এবং কোনও ছোট ছোট অক্ষরের সাথে কোনও বড় হাতের অক্ষর পরিবর্তন করে


1
পাইথন 3 সমাধানটি 26 টি অক্ষর।
টিমটেক

@ টিমটেক আমি গণনা করতে পারি না।

1
এটি শুধু সম্পর্কযুক্ত নয়। এটি অত্যন্ত সম্পর্কযুক্ত।
কার্টার পেপ

1
Text অক্ষর থাকা পাঠ্যের মুখোমুখি হওয়ার সময় এটির অদ্ভুত ফলাফল হবে ß
FUZxxl

33

পার্ল - 11 10 টি অক্ষর।

y/A-Z/a-z/

y///একই হিসাবে tr///!

পদক্ষেপে:

% perl -pe 'y/A-Z/a-z/' <<< 'Hello @ WORLD !'
hello @ world !

3
+1, একমাত্র বাস্তব জীবনের ভাষার জন্য যা সমস্ত কম (?) প্রকৃত ভাষা হারিয়ে ফেলে।
বেহরোজ

আসলে এটি 11 টি অক্ষর। -pবিকল্প হিসাবে 1. গণনা করা হয়
manatwork

@ মানাটওয়ার্ক বা এটি 2: -এবং p:) হিসাবে গণনা করা উচিত
গওথাম

1 যদি আপনি ধরে নেন -e( perl -e-> perl -pe), 3 আপনি যদি কোনও স্ক্রিপ্ট ( perl-> perl -p) ধরে নেন ।
nyuszika7h

10

বেফুঞ্জ -98 - 26 22 21 19

~:''-d2*/1-!' *+,#@

সত্য যে উপর নির্ভর করে (c-39)/26হয় 1শুধুমাত্র বড়হাতের ASCII অক্ষর (পূর্ণসংখ্যা বিভাজন অভিমানী) এর চরিত্র কোডগুলি। প্রতিটি চরিত্রের জন্য c, প্রিন্ট আউট c + (((c-39)/26)==1)*' '

নমুনা অধিবেশন:

% cfunge lower.b98
hello WORLD!
hello world!
This is a TEST!!11 az AZ @[`{
this is a test!!11 az az @[`{

9

পাইথন 3, 58

print("".join(chr(ord(x)+('@'<x<'[')*32)for x in input()))

এটি কীভাবে কাজ করে তা ব্যাখ্যা করতে পারেন? আমি পাইথনে আরও ভাল হতে আগ্রহী। map(ord,input())বিট কীভাবে কাজ করে তা আমি পাই না ।
asteri

1
@ জেফগোহেল্ক: mapএকটি অবিশ্বাস্যর জন্য একটি ফাংশন (এই ক্ষেত্রে ord) প্রয়োগ করে এবং পুনরাবৃত্তিযোগ্যকে ফেরত দেয়। এটি একটি সংক্ষিপ্ত ফর্ম মত (ord(x) for x in input())
রাই-

বুঝেছি. ব্যাখ্যা করার জন্য ধন্যবাদ!
asteri

1
আপনার উত্তর প্রশ্নের চেতনা অনুসরণ করে , তবে আমার প্রশ্নের চিঠিটি অনুসরণ করে ...

খুব সুন্দর. আমার আনপোস্ট করা 62 দৈর্ঘ্যের সমাধানটি বীট করুন for c in input():print([c,(chr(ord(c)+32))]['@'<c<'['],end='')। আমি map(ord,input())কৌতুকটি দিয়ে কিছু চেষ্টা করেছি , তবে 32 এর গুণগত মানটি মিস করে এবং এটি অক্ষর কোড ট্রিকটিতে যুক্ত করেছি। খুব সুন্দর.
স্টিভেন রাম্বালস্কি

8

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

সত্যিই আকর্ষণীয় কিছুই।

gets.tr'A-Z','a-z'

(আইআরবি চালানো)

কেবল মজাদার জন্য: একটি বিভ্রান্তিকর সংস্করণ:

$,=$* *' ';$;=$,.tr'A-Z','a-z';$><<$;

এভাবে চালান:

c:\a\ruby>lowercase.rb Llamas are AMAZING!

আউটপুট

llamas are amazing!

7

জে - 30

'@Z'(]+32*1=I.)&.(a.&i.)1!:1]1

জে ডান থেকে বামে পড়া হয়, তাই এটি ভেঙে ফেলার জন্য:

  1. ইনপুট জন্য অনুরোধ ব্যবহারকারী: 1!:1]1
  2. কোড-পয়েন্ট-স্পেসে অ্যালগরিদম সম্পাদন করুন: &.(a.&i.)
  3. প্রতিটি বর্ণের জন্য চরিত্রের সীমা চিহ্নিত করুন; codepoints "@" এবং "জেড" অক্ষরের মধ্যে বড় হাতের বলে মনে করা হয়: 1=I.
  4. প্রতিটি বড় হাতের কোডপয়েন্টের জন্য, 32 যোগ করুন: ]+32* ...
  5. নোট করুন যে পদক্ষেপ (2) একটি অন্তর্নিহিত পদক্ষেপ তৈরি করে (5): আমরা চরিত্র থেকে পূর্ণসংখ্যার ডোমেইনে প্রজেক্টের মাধ্যমে শুরু করেছি, এখন আমরা যখন শেষ করেছি, আমরা সেই পূর্ণসংখ্যার অক্ষরগুলিতে ফিরে ম্যাপ করি।

স্পষ্টতই এই নির্দিষ্ট প্রয়োগটি কেবল এএসসিআইআইকেই বিবেচনা করে; তবে পদ্ধতির ইউনিকোডের কমপক্ষে বেসিক বহুভাষিক বিমানটিতে প্রসারিত হতে পারে।


1
নিস! দুর্ভাগ্যক্রমে, মনে হচ্ছে আপনার সমাধানটি ভুল পথে চলছে। ;-) যদিও একটি সহজ ফিক্স করা উচিত। (সম্পাদনা করুন: '@Z'(]+32*1=I.)&.(a.&i.)1!:1]1এটি করা উচিত)
ফায়ারফ্লাই

ভালো লাগল, ধন্যবাদ আমি নিজেও মুগ্ধ হয়েছি আপনি কোডটি নিজেই ঠিক করতে পেরেছিলেন: জে সেখানে খুব তাত্ক্ষণিকভাবে অ্যাক্সেসযোগ্য ভাষা নয় :)
ড্যান ব্রন

আহা, আমি নিজে জেদের সাথে কিছুটা খেলেছি .. আমি সামনে আসতে পেরেছি u:(a.i.x)+32*1='@Z'I.x=.1!:1]1, যা আপনার দৈর্ঘ্যের সাথে মেলে তবে এটি খুব কম আকর্ষণীয় (কারণ এটি 'আন্ডার' ব্যবহার করে না)। যার কথা বলতে গিয়ে আমি ডায়াডিক সম্পর্কে জানতাম না I., তাই এটি ব্যবহারের জন্য ধন্যবাদ। :-)
ফায়ারফ্লাই

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

(32(23)b.])&.(3&u:), 5 বাইট কম হতে হবে।
ফ্রাউনফ্রোগ

7

সি 64 63 59 55 টি চর

main(c){while(c=getchar(),~c)putchar(c-65u<27?c+32:c);}

আমি সেখানে কেবলমাত্র 63 টি চরিত্র গণনা করছি।
manatwork

আপনি 9 টি অক্ষর হারাতে পারেন: ড্রপ int এবং ,c>=0। এগুলি এখানে প্রয়োজনীয় নয়।
জোফিশ

আমাদের সি> = 0 দরকার কারণ গেটচার (ইওএফ) <0 হবে other অন্যান্য পরামর্শের জন্য ধন্যবাদ।
রোজুর 21

2
1. ~(c=getchar())2.c-64u<27
ugoren

1
Insignificantly ছোট বাগ: মনে হয় 64 এর পরিবর্তে 65 সেখানে উচিত pastebin.com/Zc9zMx2W
manatwork

5

গল্ফস্ক্রিপ্ট - 17

কার্যক্রম:

{..64>\91<*32*+}%

ব্যাখ্যা:

  1. {}% স্ট্রিংয়ের প্রতিটি অক্ষরের ভিতরে কোড ম্যাপ করে।
  2. .. স্ট্যাকের শীর্ষস্থানটি (চরিত্র) দু'বার অনুলিপি করে।
  3. 64> 1 যদি অক্ষর কোড 64 এর চেয়ে বেশি হয়, তবে 0।
  4. \স্ট্যাকের উপর দুটি আইটেম অদলবদল করে (চিঠির দ্বিতীয় অনুলিপিটি পেয়েছে এবং ফলাফল 64>দুটিতে ফলাফল সংরক্ষণ করে)।
  5. 91< অক্ষর কোডটি 91 এর চেয়ে কম কিনা তা পরীক্ষা করে দেখুন step ধাপ 3-এর মতো।
  6. *পদক্ষেপ 3 এবং 5 থেকে একসাথে ফলাফলগুলি গুণিত করে। উভয় পদক্ষেপ সত্য হলে কেবল 1 এর সমান।
  7. 32* ধাপ of-এর ফলাফলকে 32 দিয়ে গুণিত করে step পদক্ষেপটি 1 হলে 32 হবে, অন্যথায় 0।
  8. + অক্ষর কোডে ফলাফল (32 অথবা 0 হয়) যুক্ত করুন।

উদাহরণ আউটপুট:

echo HelLO @ WorLD | ruby golfscript.rb upper_to_lower.gs
hello @ world

4

পার্ল: 24 টি অক্ষর

s/[A-Z]/chr 32+ord$&/ge

নমুনা রান:

bash-4.1$ perl -pe 's/[A-Z]/chr 32+ord$&/ge' <<< 'Hello @ WORLD !'
hello @ world !

হেম, কেন chr ord? আমি নিশ্চিত যে আপনি আমার উত্তর পড়তে কিছুই শিখতে পারবেন না ;-)
এফ হৌরি

আশ্চর্যজনক কৌশল, @ এফ.হৌরি!
manatwork

@ nyuszika7h, +1 হ'ল -pকমান্ড লাইন প্যারামিটার, কোনও নতুন লাইন নয়।
manatwork

ওহ ঠিক আছে, দুঃখিত।
nyuszika7h

3

পাইথন (33)

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

import os;os.system('tr A-Z a-z')

আফসোস, লেগো সমাধানের চেয়ে এটি এখনও দীর্ঘ।


+1 এটি প্রকৃতপক্ষে কোনও পাইথন নয় যা আপনি ব্যবহার করছেন। শুধুমাত্র লিনাক্সে কাজ করে, তবে এখনও খুব নিয়ম-বেন্ডি থাকে !!!

trআমি মনে করি, লেগোস্টোরমট্রোপ্র সর্বত্র কাজ করে যেখানে অনুরোধ করা শেলের পথে একটি কমান্ড রয়েছে (যা সঠিক কাজ করে), আমি মনে করি।
পাওলো ইবারম্যান

3

ডেল্ফী

const
  UpChars:set of AnsiChar = ['A'..'Z'];
var
  I: Integer;
begin
  SetLength(Result, Length(pString));
  for I := 1 to length(pstring) do
    Result[i] := AnsiChar((Integer(pString[i] in UpChars))*(Ord(pString[i])+32));
  WriteLn(Result);
end;

3
এটি গল্ফ নয়। আপনি কি মনে করেন না যে এই টুকরোটি অন্যদের তুলনায় খুব আলাদা?
রায়

1
@ রায় গল্ফিং আপনার কোডটি যত তাড়াতাড়ি সংক্ষিপ্ত করতে পাবে। গল্ফ করার জন্য ডেলফি দুর্দান্ত ভাষা নেই nt আমি নিজেই ডেলফি ব্যবহার করি এবং যদিও ডেল্ফি দিয়ে গল্ফ জিততে পারে এমন বড়ো সম্ভাবনা না থাকলেও নিজেকে চ্যালেঞ্জ জানানো এখনও মজাদার।
তেউন প্রোঙ্ক

3

জাভাস্ক্রিপ্ট - 109 104 (ES6: 95)

সংশোধিত সংস্করণ জন্য কিছু ধন্যবাদ।

a=prompt();for(b=[i=0];c=a.charCodeAt(i);)b[i++]=String.fromCharCode(c|(c>64&c<91)*32);alert(b.join(""))

নিম্নলিখিতটি কাজ করে যদি ব্রাউজারটি ES6 ফাংশন এক্সপ্রেশন সমর্থন করে:

alert(prompt().split("").map(c=>String.fromCharCode(c.charCodeAt()|(c>"@"&c<"[")*32)).join(""))

প্রথম কোডটি কাজ করে না (এফএফ এবং ক্রোমে পরীক্ষা করা হয়) কারণ যখন স্ট্রিংয়ের দৈর্ঘ্যের পরে কোনও অক্ষর পাওয়ার চেষ্টা করা হয়, আপনি পেয়ে যান undefinedএবং পরে c.charCodeAt()ব্যর্থ হন কারণ অপরিজ্ঞাত নেই charCodeAt। একজন পরিশ্রমী উদাহরণ 105 অক্ষর:a=prompt();for(b=[i=0];c=a.charCodeAt(i);)b[i++]=String.fromCharCode(c|(c>64&&c‌​<91)*32);alert(b.join(''))
কিছু

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

যৌক্তিকের andপরিবর্তে কিছুটা ব্যবহার করা ... চমৎকার!
কিছু

একটি এমনকি আরো ES6 সমাধান ( 79 ): L=s=>[String.fromCharCode(c.charCodeAt()|(c>"@"&c<"[")*32)for(c of s)].join('')। ব্যবহার:L('SoMeTeXt')
ফ্লোরেন্ট

নিস! যদিও এটিকে নিছক ফাংশন বানানোর বিষয়ে আমি নিশ্চিত নই, যেহেতু অন্যান্য সমস্ত সমাধান "যথাযথ" প্রোগ্রাম are তবুও for..ofনির্বিশেষে খুব সুন্দর ব্যবহার ।
ফায়ারফ্লাই

3

পার্ল 18

s/[A-Z]/$&|" "/eg

কিছুটা এইরকম:

perl -pe 's/[A-Z]/$&|" "/eg'  <<<'are NOT allowed to: ToLower() in .NET, strtolower() in PHP'
are not allowed to: tolower() in .net, strtolower() in php

এবং

perl -pe 's/[A-Z]/$&|" "/eg' <<< "The input string Doesn't cOntaIn...( C0D3-@01F. ;-)"
the input string doesn't contain...( c0d3-@01f. ;-)

জন্য @FireFly :

perl -pe 's/[A-Z]/$&|" "/eg' <<< "Doesn't this translate @ to \` and [\]^_ to {|}~DEL? "
doesn't ... @ to ` and [\]^_ to {|}~del? 

কোন।

আরও জেনেরিক: যাইহোক 18 টি অক্ষর:

s/[A-Z]/$&|" "/eg

s/[A-Z]/$&^" "/eg

এই রাজ্যে কিছুই বদলাবে না:

perl -pe 's/[A-Z]/$&^" "/eg' <<< "Doesn't ... @ to \` and [\]^_ to {|}~DEL? "
doesn't ... @ to ` and [\]^_ to {|}~del? 

সমস্ত কাজ ঠিক আছে, কিন্তু (xor) |দ্বারা ^( বা) পরিবর্তন করার সুবিধাটি হ'ল একই বাক্য গঠনটি ব্যবহার করা যেতে পারে toLower, toUpperবা swapCase:

toupper:

perl -pe 's/[a-z]/$&^" "/eg' <<< "Doesn't ... @ to \` and [\]^_ to {|}~DEL? "
DOESN'T ... @ TO ` AND [\]^_ TO {|}~DEL? 

এবং অদলবদল (18 + 1 = 19 অক্ষর) :

perl -pe 's/[a-z]/$&^" "/egi' <<< "Doesn't ... @ to \` and [\]^_ to {|}~DEL? "
dOESN'T ... @ TO ` AND [\]^_ TO {|}~del? 

আমি +1 এর জন্য ভুলে গেছি -p দুঃখিত 1manatwork এর
এফ।

এটি অনুবাদ করে না @ ব্যাকটিক এবং [\]^_করতে {|}~DEL? এবং এর মধ্যে রয়েছে জটিল অংশ ..
ফায়ারফ্লাই

1
@ ফায়ারফ্লাই নং, $&মিল আছে [A-Z]
এফ। হাউরি 18

ওহ! আমার দুরবস্থা. খুব সুন্দর, তাহলে!
ফায়ারফ্লাই

3

জাভাস্ক্রিপ্ট 80

"X".replace(/[A-Z]/g,function($){return String.fromCharCode($.charCodeAt()+32)})

(76 টি সরিয়ে দিলে "X")

সহ promptএবং alert- 92

alert(prompt().replace(/[A-Z]/g,function($){return String.fromCharCode($.charCodeAt()+32)}))

বেহালা

@ ফায়ারফ্লাই @ সুম @ সি 5 এইচ 8 এনএনএও 4 এবং @ মিনিটেককে ধন্যবাদ জানাই


এর, আপনার replaceসাথে দ্বিতীয় যুক্তিটি মোড়ানো দরকার function($){return ...}, না? যাইহোক, প্রতিস্থাপন ফাংশনের প্রথম প্যারামটি হ'ল ম্যাচিং স্ট্রিং, যাতে আপনি পেরেনকে রেজিজেটে ফেলে দিতে পারেন।
ফায়ারফ্লাই

আমি কীভাবে এটি চালিয়ে যাব?
C5H8NNaO4

@ C5H8NNaO4 str (এখানে কোড)
ম্যাথ চিলার

6
আমি মনে করি এখানে সমস্ত (বা সর্বাধিক সর্বাধিক) উত্তরগুলি স্টিডিন থেকে প্রিন্ট করে স্টাডআউটে পড়ে। আমি যে কনভেনশনটি সংগ্রহ করি তা থেকে জেএসে আমি / promptalertব্যবহার করি for
ফায়ারফ্লাই

1
/gসঠিকভাবে কাজ করার জন্য আপনার একটি পতাকা প্রয়োজন ।
রাই-

2

আর

Characters১ টি অক্ষর:

chartr(paste(LETTERS,collapse=""),paste(letters,collapse=""),scan(,""))

83 টি অক্ষর:

a=as.integer(charToRaw(scan(,"")))
b=a%in%(65:90)
a[b]=a[b]+32
rawToChar(as.raw(a))

এটি 86অক্ষর - নিউলাইনগুলি 2 টি অক্ষর হিসাবে গণনা করা হয়। ( স্ট্রিংফ্যাঙ্কশনস.লাইনেথ.এএসপিএক্স )
টিমটেক

@ টিমটেক: আর-তে আপনি কোডগুলিতে নিউলাইনগুলি প্রতিস্থাপন করতে পারেন ;তাই তারা কেবল একটি চরিত্রের জন্য গণনা করে। এটি লেখা যেতে পারে:a=as.integer(charToRaw(scan(,"")));b=a%in%(65:90);a[b]=a[b]+32;rawToChar(as.raw(a))
প্ল্যানাপাস

হ্যাঁ, এখন বুঝতে পারলাম আমি মেটাতে পড়েছি ... মনে হচ্ছে কেবল উইন্ডোজেই নিউলাইনগুলি 2 টি অক্ষর (আমি আমার কোডের দৈর্ঘ্য পরিমাপ করতে একটি প্রোগ্রাম ব্যবহার করছিলাম)।
টিমটেক



2

পিএইচপি (42)

কমান্ড লাইন থেকে চালান:

-R'echo@str_ireplace($a=range(a,z),$a,$argn);'

-R এবং একক উদ্ধৃতি গণনা করা হয় না।


আপনি যদি গোথামের খোসা সমাধানটি অনুসরণ করেন তবে আপনি কেবল 42 টি অক্ষর গণনা করতে পারেন।
আইজবার্গ

1
@ আইসবার্গ: স্কোর আপডেট করেছে এবং কোনও বিরোধের ক্ষেত্রে ইতিহাসে একটি 43-চরিত্রের সংস্করণ রেখে গেছে।
প্লিজ স্ট্যান্ড

str_ireplaceযদি সেগুলি ভঙ্গ না করে তবে বিধিগুলি প্রসারিত করে এমন সংবেদনশীল অনুসন্ধান করে does
ugoren

@ ইউগোরেন আমি এটি মনে করি না। যেমনটি স্পষ্টভাবে বলা হয়েছে যে কেবলমাত্র কেস পরিবর্তন করে ফাংশন গঠনের অনুমতি নেই এবং এটি মামলা পরিবর্তন না করে এড়িয়ে চলেছে।
আইজবার্গ

2

পাওয়ারশেল: 69 65 64

দীর্ঘক্ষণ ব্যবহার না করে আমি যেভাবে চাই তা প্রতিস্থাপনের জন্য আধা ডজন উপায় চেষ্টা করেছি [regex]::Replace সিনট্যাক্স , তবে আমার ভাগ্য হয়নি। অন্য কারও কি কাজ করতে পারে সে সম্পর্কে ধারণা থাকলে দয়া করে এটি পরামর্শ দিন।

গল্ফ কোড:

[regex]::Replace((read-host),"[A-Z]",{[char](32+[char]"$args")})

মূল থেকে পরিবর্তনগুলি:

  • সর্বশেষ যুক্তিটি পুনরায় সাজানো যাতে [int]মন্তব্যে প্রতিটি পরামর্শ অনুসারে এর আর প্রয়োজন হয় না।

ব্যাখ্যা:

(read-host) ব্যবহারকারীর ইনপুট পায়।

[regex]::Replace(... )পাওয়ারশেলকে স্ট্রিংয়ের প্রতিস্থাপন ক্রিয়াকলাপ সম্পাদনের জন্য RegEx ম্যাচ ব্যবহার করতে বলে।

"[A-Z]" সমস্ত বড় হাতের অক্ষরের সাথে মেলে।

{... }পাওয়ারশেলকে প্রতিস্থাপনের মান নির্ধারণ করতে একটি স্ক্রিপ্ট ব্যবহার করতে বলে।

[char]"$args" বর্তমান ম্যাচটি নেয় এবং এএসসিআইআই অক্ষর হিসাবে এটি টাইপ করে।

32+ অক্ষরটিকে ASCII কোড উপস্থাপন করে এবং পূর্ণসংখ্যায় রূপান্তর করে এবং মানটি 32 দ্বারা বৃদ্ধি করে - যা সংশ্লিষ্ট ছোট অক্ষরের ASCII কোডের সাথে মিলবে।

[char](... )ফলস্বরূপ মানটি নেয় এবং এএসসিআইআই অক্ষরে রূপান্তর করে।

মূল ডেমো:

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

(বর্তমান সংস্করণ পরীক্ষা করা হয়েছে - স্ক্রিনশটটি এখনও পোস্ট করা হয়নি))


1
যে কাছাকাছি পেতে কিভাবে চেক করা হয়েছে [regex]::Replace, কিন্তু আপনি পরিবর্তন করে 4 অক্ষর সংরক্ষণ করতে পারবেন [int]করার+
goric

1
প্রকৃতপক্ষে, সম্পূর্ণ শেষ যুক্তিটিকে পুনরায় সাজানো যেতে পারে {[char](32+[char]"$args")}, যা স্পষ্টভাবে int- তে কাস্ট করার প্রয়োজনটিকে সরিয়ে দেয় এবং আরও একটি চরিত্রকে শেভ করে
গোরিক

@ গোরিক গীজ, আমি কেন ইতিমধ্যে এটি ভাবিনি? এখনও শিখছি, আমার ধারণা।
ইসজি 21

2

k2, 15 বাইট

আমি সুপার এই এক দেরী, কিন্তু আমি এই শীতল যাহাই হউক না কেন খুঁজে পাওয়া যায়নি।

{_ci 32+_ic x}'

এছাড়াও:

পাইথ, 10 বাইট

সত্যিই গণনা হয় না কারণ পোস্টটি পোস্ট করার পরে পাইথ তৈরি হয়েছিল। এখনও শীতল।

jkmC+32Cdw

2

05 এ বি 1 , 3 বাইট

u.š

@ User8777 পাইথন 3 উত্তর এর বন্দর ।

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

ব্যাখ্যা:

u    # Convert the (implicit) input to uppercase
   # Switch the case (upper to lower and vice-versa)
     # (and output the result implicitly)

তবে কোনও ক্ষেত্রে-পরিবর্তিত বিল্টিনগুলি ছাড়াই:

05 এ বি 1 ই , 12 11 বাইট

ÇIS.u32*+çJ

-1 বাইট @ এমিগানাকে ধন্যবাদ ।

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

ব্যাখ্যা:

Ç            # Get the unicode values of each character of the (implicit) input-String
 IS          # Get the input-string, split to characters again
   .u        # Check for each if it's uppercase or not (1 if truthy; 0 if falsey)
     32*     # Multiply that result by 32 (32 if truhy; 0 if falsey)
        +    # Add it to all the unicode values at the same indices in the list
         ç   # Convert the now modified unicode values back to characters
          J  # And join all characters together to a string again
             # (which is output implicitly as result)

1
ÇIS.u32*+çJআপনার 12-বাইট সংস্করণে একটি বাইট সংরক্ষণ করে।
এমিগানা

@ এমিগনা আহ, স্মার্ট আমি .u32*+এই পদ্ধতির চেষ্টা করেছিলাম : εÇy.u32*+ç]Jতবে দুর্ভাগ্যক্রমে çএকটি তালিকাতে চরিত্রগুলি মোড়ানো, সুতরাং অতিরিক্ত Jবা so প্রয়োজন পরে ç..
কেভিন ক্রুইজসেন

1

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

prompt().split("").map(function(a){c=a.charCodeAt(0);return String.fromCharCode(c|(c-64?32:0))}).join("")

প্রকৃতপক্ষে কোনও আউটপুট ফর্ম নির্দিষ্ট করা হয়নি, সুতরাং এটি কনসোলে চালান হ্যাঁ, জাভাস্ক্রিপ্ট সত্যই চারকোড </> স্ট্রিং সহ ভারবোজ


1
c.charCodeAt()- এটি 0কোনও সূচক বাদ দিলে ডিফল্ট হয় । এছাড়াও, '@' এর বিরতিতে আমি বিশ্বাস করি (এটি "ব্যাকটিকের সাথে" নিম্নতর "হয়ে যায়)
ফায়ারফ্লাই

@ ফায়ারফ্লাই নিস, ধন্যবাদ! ওকে আমি ঠিক করবো =)
সি


1

সি # - 108

class P{static void Main(string[]a){foreach(var c in a[0])System.Console.Write(
(char)(c>64&&c<91?c+32:c));}}

প্রায় 70 মেথড মেথড শরীরের জন্য।

আউটপুটে একটি এলএফ / সিআর অন্তর্ভুক্ত করতে পাঁচটি অক্ষর যুক্ত করুন:

class P{static void Main(string[]a){foreach(var c in a[0]+"\n")System.Console.Write(
(char)(c>64&&c<91?c+32:c));}}

একটি লিনিক্যু সংস্করণ সংক্ষিপ্ত হবে:

class P{static void Main(string[]a){a[0].Any(c=>System.Console.Write(
(char)(c>64&&c<91?32+c:c))is P);}}

(103) .. এটির ব্যতীত using System.Linq;(মোট: 121)।



1

পাইথন 3 - 70

ওপির পরিবর্তনের জন্য আপডেট হয়েছে।

আমি পাইথনের নবাগত, সুতরাং যে কোনও সমালোচক স্বাগত।

print("".join(chr(ord(c)+32) if 64<ord(c)<91 else c for c in input()))

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

1
দয়া করে আমার সাম্প্রতিক মন্তব্যটি দেখুন : আপনার কোডটি কেবলমাত্র তখনই কাজ করে যদি ইনপুট স্ট্রিংটিতে কেবলমাত্র বড় হাতের অক্ষর থাকে তবে দয়া করে নোট করুন যে এতে অন্যান্য ASCII অক্ষর যেমন ছোট ছোট অক্ষর এবং সংখ্যা রয়েছে।
প্রোগ্রামএফক্স

ঠিক আছে, আমি বাড়ি এলে আপডেট হবে
অস্ট্রেলি

@ প্রোগ্রামগ্রামফক্স আপডেট হয়েছে।
asteri

জেফ, @ মিনিটেকস উত্তরগুলি দেখুন । আপনার দুজনেরই খুব একই রকম দৃষ্টিভঙ্গি রয়েছে যাতে আপনার কীভাবে এবং কেন তার উত্তর সংক্ষিপ্ত হয় তা দেখতে সক্ষম হওয়া উচিত ।

1

পার্ল, 9 + 1 (-p পতাকার জন্য) = 10

$_="\L$_"

\L সম্পর্কে বিশেষভাবে জিজ্ঞাসা করা হয়েছিল এবং অনুমতি দেওয়া হয়েছিল, কারণ এটি বিল্ট-ইন হলেও এটি কোনও ফাংশন নয়।


1

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

-4 বাইট ধন্যবাদ @ অ্যাডমবর্কবার্ক

-join($args|% t*y|%{[char](32*($_-in65..90)+$_)})

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

$f = {

-join($args|% t*y|%{[char](32*($_-in65..90)+$_)})

}

@(
    ,("Hello WORLD from PowerShell", "hello world from powershell")
) | % {
    $a,$e = $_
    $r = &$f $a
    "$($r-eq$e): $r"
}

আউটপুট:

True: hello world from powershell

শান্ত! ¯\_(ツ)_/¯
mazzy

1

8086 মেশিন কোড, 14 বাইট

একত্র:

AC 3C 41 7C 06 3C 5A 7F 02 0C 20 AA E2 F2

অ-জমায়েত তালিকা:

 ; Lowercase a string
 ; Input: string: SI, length: CX
 ; Output: string: DI
 TOLOW  MACRO   
        LOCAL _LOOP, _STORE
       _LOOP:
 AC         LODSB           ; load byte from [SI] into AL, advance SI 
 3C 41      CMP  AL, 'A'    ; is char less than 'A'? 
 7C 06      JL   _STORE     ; if so, do not convert 
 3C 5A      CMP  AL, 'Z'    ; is char greater than 'Z'? 
 7F 02      JG   _STORE     ; if so, do not convert 
 0C 20      OR   AL, 020H   ; lowercase the char 
       _STORE:
 AA         STOSB           ; store char to [DI], advance DI 
 E2 F2      LOOP _LOOP      ; continue loop through string 

MACRO(মূলত একটি ফাংশন) হিসাবে প্রয়োগ করা হয়েছে । ইনপুট স্ট্রিং ইন SI, দৈর্ঘ্য CX। আউটপুট স্ট্রিং ইন DI

পিসি ডস পরীক্ষা প্রোগ্রাম থেকে আউটপুট:

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

TOLOW.COM উদাহরণ প্রোগ্রামটি ডাউনলোড করে পরীক্ষা করুন ।


14 বাইট গণনাটি কোথা থেকে আসছে? স্নিপেটটি তার চেয়ে দীর্ঘ, এমনকি কোনও মন্তব্য ছাড়াই ... 14 বাইট সংকলিত প্রোগ্রামটি কি?
জোনাহ

1
@ জোনাঃ বাইট অপকোডটি বামদিকের কলামে রয়েছে, AC 3C 41ইত্যাদি ইত্যাদি আমি স্পষ্টতার জন্য শীর্ষে একত্রিত হেক্স বাইট কোড যুক্ত করব। কোডগলফ.মেটা.স্ট্যাকেক্সেঞ্জাও.আ.এ.
640
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.