বড় বড় স্ট্রিং


18

একটি স্ট্রিং দেওয়া হয়েছে, এটি মূলধন করুন। মূলধন দ্বারা আমি conTeNT-lENgthপরিবর্তনগুলি বোঝায় Content-Length। উদাহরণ হিসাবে আমি 2 টি শব্দের সাথে স্ট্রিংটি -শব্দের সীমানা হিসাবে দেখিয়েছি । তবে আমি আশা করি আপনি একটি স্ট্রিংয়ের জন্য কোড লিখবেন যাতে সীমানা হিসাবে একক অক্ষর দ্বারা বিভাজিত যে কোনও সংখ্যক শব্দের সমন্বয় থাকে। এই সীমানা স্ট্রিং জুড়ে পরিবর্তন হতে পারে।

পরিবেশ

  1. ব্যবহার regular expressionsকরা হয় অনুমতি দেওয়া হয় না
  2. একটি বাক্যে (স্ট্রিং) শব্দের সংখ্যা থাকতে পারে।
  3. প্রতিটি শব্দে যে কোনও ক্ষেত্রে Englishবর্ণ থাকবে [a-zA-Z]
  4. বাক্যের বিভিন্ন শব্দ একক অক্ষর দ্বারা পৃথক করা হবে। এই অক্ষর হবে শুধুমাত্র যে কোনো একটি হতে -, ., <space-character>, /, &, #। আপনি নিরাপদে ধরে নিতে পারেন যে বাক্যে উল্লিখিত ব্যতীত অন্য কোনও চরিত্র থাকবে না
  5. শব্দ সীমানা আউটপুট সংরক্ষণ করা উচিত।
  6. সংক্ষিপ্ততম কোড জয়

উদাহরণস্বরূপ আপনার প্রোগ্রামের Begin/With.Type&Contentজন্য আউটপুট করা উচিত BeGin/wITH.tyPE&conTeNt

Some test cases:
 "aGeNT ACcEpT/LEngTh-tYPe USeR raNgE.TyPe" 
 "type&AgeNt/CC/COnteNt lEnGth#acCePT/AgeNt.RAnGe-Cc/contEnt/cODe" 
 "cc/rEspoNCe.lEngtH#tYpE-witH&UsEr/bEgIN&uSer.AGEnT&begIn/aCCEPt/Cc" 
 "lENgTH#USeR.tYpE/BeGiN&LENGth tYpe/ACCEpt#rANge/codE&AnD-ACCepT/ConTenT" 
 "contENT/ACcEpT" 
 "BeGin/wITH.tyPE&conTeNt"
 "Code.cc#User.lenGTh-USer-AND&tyPE TypE&leNgtH.tYPe usER.UseR&with" 
 "RaNgE&COnTeNT WITh CoNTENT-TypE tyPe"
 "BEgin COdE#uSeR#aGeNt.USeR"
 "TypE LENGth"

2
আপনি যেটাকে মূলধন বলছেন তা আসলে উটের ক্ষেত্রে রূপান্তর।
পিয়েরে আরলাড

6
@ আরলাডপিয়ের না, তিনি "পরীক্ষার মামলা" হিসাবে যা দিয়েছেন তা উটের মামলার মতো are যাকে মূলধন বলা হচ্ছে এটি শিরোনাম কেসের নিকটে।
ইসজি

আপনি কি দয়া করে পরীক্ষার ক্ষেত্রে প্রত্যাশিত আউটপুট সরবরাহ করতে পারেন? দেখে মনে হচ্ছে কিছু অন্তর্নির্মিত ফাংশন ধরে নিতে পারে যে সমস্ত ক্যাপ শব্দগুলি (যেমন /CC/লাইন 2 তে বা -AND&লাইন 7-তে) একা ছেড়ে দেওয়া উচিত। এই চ্যালেঞ্জের জন্য এটি কি ঠিক আছে?
ইসজি

ইনপুটটি কি সর্বদা কোনও শব্দ দিয়ে শুরু হয় বা এটি কোনও বিভাজক দিয়ে শুরু হতে পারে?
lebatsnok

উত্তর:


7

গল্ফস্ক্রিপ্ট, 36 27 19 টি অক্ষর

0\{95&+.47>32*\}%\;

একটি বেশ বেসিক গল্ফস্ক্রিপ্ট পদ্ধতির যা স্পেসিফিকেশন অনুযায়ী সমস্ত ইনপুট জন্য কাজ করে। উদাহরণগুলি অনলাইনে পরীক্ষা করা যায়


কুল। আমার সমাধানটি পেশাদার হিসাবে কমপক্ষে দ্বিগুণ কিনা তা জানতে আগ্রহী ছিল। :) তবে আমি নিশ্চিত যে আপনি দিন শেষ হওয়ার আগে বেশ কয়েকবার এটি সংক্ষিপ্ত করে দেবেন।
manatwork

@ মান্যাটওয়ার্ক এখন আমাদের দুটি ফ্যাক্টর রয়েছে ;-) এখনও সমস্ত অদলবদল থেকে অসন্তুষ্ট।
হাওয়ার্ড

আমি জানতাম তুমি আমাকে হতাশ করবে না
manatwork

22

পাইথন 3,22

print(input().title())

এই কোডটি স্টিডিনের ইনপুট হিসাবে একটি স্ট্রিং নেবে এবং স্টডআউটকে মূলধন আউটপুট দেয়।

উদাহরণ স্বরূপ:

ইনপুট:

BEGIN/wITH.tyPe&cOnTENt

ouput:

Begin/With.Type&Content

নিম্নলিখিত কোডটি মাল্টি-লাইন ইনপুটগুলির জন্য (প্রয়োজনে)

পাইথন 3, 46

import sys
for i in sys.stdin:print(i.title())

while 1:print(input.title())কোডের শেষ টুকরোটির জন্য একটি সংক্ষিপ্ত সমতুল্য।
রামচন্দ্র আপ্তে

1
@ রামচন্দ্রআপতে আমি নিশ্চিত নই যে এটি অনুমোদিত কি না। আপনার কোড একটি সঙ্গে মারা যাবে EOFError যত তাড়াতাড়ি তার হিট হিসাবে ফাইলের শেষে
Wasi থেকে

1
আমি মনে করি গল্ফগুলির জন্য সাধারণ sensকমত্য যে যতক্ষণ আউটপুট সঠিক হয় ততক্ষণ ত্রুটি কোনও বিষয় নয়
অস্থিরতা

dang; এই প্রশ্নটি দেখার সাথে সাথে আমি এই বিষয়টি ভেবেছিলাম তবে আপনি আমাকে এতে মারধর করেছেন। +1
জাস্টিন

+1 আমি গল্ফস্ক্রিপ্টের চেয়ে ভাল এটি পছন্দ করি কারণ এটি কোনও অশ্লীলতার মতো দেখাচ্ছে না।
টিম সেগুইন

6

গণিত 62

উপাত্ত

tests={"aGeNT ACcEpT/LEngTh-tYPe USeR raNgE.TyPe","type&AgeNt/CC/COnteNt lEnGth#acCePT/AgeNt.RAnGe-Cc/contEnt/cODe","cc/rEspoNCe.lEngtH#tYpEwitH&UsEr/bEgIN&uSer.AGEnT&begIn/aCCEPt/Cc","lENgTH#USeR.tYpE/BeGiN&LENGth tYpe/ACCEpt#rANge/codE&AnD-ACCepT/ConTenT","contENT/ACcEpT","BeGin/wITH.tyPE&conTeNt","Code.cc#User.lenGTh-USer-AND&tyPE TypE&leNgtH.tYPe usER.UseR&with","RaNgE&COnTeNT WITh CoNTENT-TypE tyPe","BEgin COdE#uSeR#aGeNt.USeR","TypE LENGth"}

কোড

StringReplace[ToLowerCase@#,WordBoundary~~x_:>ToUpperCase@x]&

ব্যবহার

f["aGeNT ACcEpT/LEngTh-tYPe USeR raNgE.TyPe"]

"এজেন্ট গ্রহণ / দৈর্ঘ্যের ধরণের ব্যবহারকারী পরিসীমা.প্রকার"

f /@ tests

Age "এজেন্ট স্বীকৃতি / দৈর্ঘ্যের ধরণের ব্যবহারকারী পরিসীমা.প্রকার",
"প্রকার ও এজেন্ট / সিসি / সামগ্রী দৈর্ঘ্য # স্বীকার / এজেন্ট। রেঞ্জ-সিসি / বিষয়বস্তু / কোড", "সিসি / প্রতিক্রিয়া। দৈর্ঘ্য # প্রকারের সাথে & ব্যবহারকারী / শুরু এবং ব্যবহারকারী.এজেন্ট এবং শুরু / স্বীকৃতি / সিসি "," দৈর্ঘ্য # ব্যবহারকারীর.প্রকার / প্রারম্ভিক এবং দৈর্ঘ্যের প্রকার / স্বীকৃতি # পরিসর / কোড এবং অ্যান্ড-গ্রহণ / সামগ্রী "," সামগ্রী / স্বীকৃতি ",
" প্রারম্ভিক / সাথে। টাইপ এবং সামগ্রী ",
" কোড.সিসি # ব্যবহারকারীর দৈর্ঘ্য-ব্যবহারকারী -আর ও প্রকারের প্রকার এবং দৈর্ঘ্য.প্রকার ব্যবহারকারী। ব্যবহারকারী এবং সাথে ",
" বিষয়বস্তুর প্রকারের সাথে পরিসর এবং বিষয়বস্তু ",
" কোড # ব্যবহারকারী # এজেন্ট শুরু করুন ",
" দৈর্ঘ্যের প্রকার "Type


-1 এটি মূলত রেজেেক্স
ক্যালকুলেটরফ্লাইন

ম্যাথমেটিকা ​​সরাসরি রেগেক্স চালাতে পারে তবে আমি অন্য কিছু ব্যবহার করেছি। এটি রেজেক্সের মতো, তবে এটি রেজেক্স নয়।
ডেভিডসি


6

জাভাস্ক্রিপ্ট (94)

prompt().split(l='').map(function(a){return l='A'>l?a.toUpperCase():a.toLowerCase()}).join('')

5

পিএইচপি: 78 73 65 64 টি অক্ষর

$b=ucfirst;foreach(str_split($s)as$c)echo$b($c),!$b[0]=$c<A?u:l;

ইনপুট পাস করা হয় $s । এটি অক্ষরের অ্যারে হিসাবে স্ট্রিংয়ে পরিচালনা করে।

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

রাজ্যে সংরক্ষণ $bকরা হচ্ছে এবং পরবর্তী চরিত্রটিতে ডাকা প্রয়োজন এমন ফাংশনের নাম হিসাবে প্রতিনিধিত্ব করা হচ্ছে। ucfirstএবং lcfirstসংক্ষিপ্ত অক্ষর স্ট্রিং strtolower/ strtoupperএ টাইপ করতে এবং অনুরূপ আচরণ আছে । এছাড়াও, যেহেতু সেগুলি কেবল একটি বর্ণের দ্বারা পৃথক, তাই আমরা রাজ্য সংরক্ষণের জন্য সেগুলি দক্ষতার সাথে ব্যবহার করতে পারি। রাজ্যটি বুলেটিনে স্পষ্টভাবে সংরক্ষণ করার জন্য মূল সংস্করণটির প্রয়োজন।

যেহেতু ইকো বুলেট মিথ্যা জন্য কিছু মুদ্রণ করে না, তাই !প্রতিধ্বনি বিবৃতিতে অ্যাসাইনমেন্টটি (যা এই ক্ষেত্রে সত্যবাদী) "লুকিয়ে" রাখতে আমি কমা এবং অপারেটরটি ব্যবহার করেছিলাম । এটি আমাকে মুছে ফেলে একটি চরিত্র সংরক্ষণ করতে দেয় {}


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

পরিবর্তে $b=ord($c)>64;চেষ্টা করুন $b=$c>"@";। বা এমনকি $b=$c>=A;- আফার যা একটি সতর্কতা দেয়, তবে ভাল কোডিং অনুশীলনগুলি এখানে কোনও গুণ নয়।
manatwork

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

হুম ... ঠিক একটি পতাকা হিসাবে $ বি ব্যবহার না করে এর মধ্যে প্রকৃত ফাংশনটির নাম সংরক্ষণ করার কী আছে? $b=ucfirst;foreach(str_split($s)as$c){echo$b($c);$b[0]=$c>=A?l:u;}
manatwork

@ মানাত ওয়ার্ক দুর্দান্ত! আমি ফাংশন দিয়ে এটি করার একটি উপায় চিন্তা করার চেষ্টা করছিলাম। আমার চেষ্টা সব বড় ছিল।
টিম সেগুইন

4

সি, 83

n;main(c){c=getchar();putchar(c>96?n?c:(n=c-32):c&64?n?c+32:(n=c):(n=0,c));main();}

লাইনগুলি চালু করে stdin, এগুলিতে অনুবাদ করে stdout। (পছন্দ SIGINTকরার EOF।)


4

পাওয়ারশেল: 37 - 43

আপনি কীভাবে ইনপুট নিতে চান তার উপর নির্ভর করে ...

ইনপুটটির জন্য ব্যবহারকারীকে অনুরোধ করুন: 43

(Culture).TextInfo.ToTitleCase((read-host))

পাইপলাইন থেকে ইনপুট নিন: 38

(Culture).TextInfo.ToTitleCase($input)

স্ক্রিপ্টটি চালনার সময় আর্গুমেন্ট হিসাবে ইনপুট সরবরাহ করুন: 37

(Culture).TextInfo.ToTitleCase($args)

দ্রষ্টব্য: উপরের স্ক্রিপ্টগুলি সমস্ত ক্যাপ শব্দগুলিকে অগ্রাহ্য করবে এবং সেগুলি যেমন রয়েছে তেমন রেখে যাবে। যদি এটির জন্য অ্যাকাউন্টিং করা দরকার হয় তবে শিরোনাম কেস রূপান্তর হওয়ার আগে ইনপুটটিকে জোর করে ছোট-ছোট করাতে হবে। এটি প্রথম পদ্ধতিতে 10 টি অক্ষর এবং অন্য দুটিতে 12 টি অক্ষর যুক্ত করে।

(Culture).TextInfo.ToTitleCase((read-host).ToLower())
(Culture).TextInfo.ToTitleCase("$input".ToLower())
(Culture).TextInfo.ToTitleCase("$args".ToLower())

স্পেসিফিকেশন অনুযায়ী কাজ করে না। ব্যবহার করে দেখুন foo:bar
মোরমেগিল

@ মোরমেগিল কোনটি? পঠন-হোস্ট সংস্করণটি কমপক্ষে আমার পক্ষে ভাল কাজ করে। আমি এটি পরীক্ষার সমস্ত পরীক্ষার মামলার বিপরীতে পরীক্ষা করেছি এবং প্রশ্নটিতে মন্তব্য করে পোস্ট করা বিশেষ মামলাগুলি বাদে তারা সবাই প্রত্যাশার সাথে প্রত্যাবর্তন করেছিল।
ইসজি

:(কোলন) বিধি # 4-এ শব্দের বিভাজক হিসাবে তালিকাভুক্ত নয়, সুতরাং, এএএফআইসস, এর foo:barফলাফল হওয়া উচিত Foo:bar, না Foo:Bar । তবে এটি স্পেসিফিকেশনটি কেবল আমার (বেশ কড়া) পড়া।
মরমেগিল

2
@ মারমেগিল ভাল, এটা ঝরঝরে। দেখে মনে হচ্ছে এই স্পষ্টতাকে সমাধান করার জন্য অনুমানটি টুইট করা হয়েছিল, একই সময়ে এই উত্তরটি অকার্যকর করে না।
ইসজি

1
আপনি এর get-cultureসাথে প্রতিস্থাপন করতে পারেন culture; দেখতে codegolf.stackexchange.com/a/778/1308
Danko Durbić

4

জাভা - 209 টি অক্ষর

class C{
public static void main(String[]a){
for(String b:a){
char[]k=b.toLowerCase().toCharArray();
for(int i=-1;i<k.length;i++){if(i<0||"-. /&#".indexOf(k[i])>=0)k[++i]=(char)(k[i]-32);}
System.out.println(k);}}}

আমি কেবল পঠনযোগ্যতার জন্য নিউলাইনগুলি যুক্ত করেছি।


3

আর, 143 116

একটি সমাধান সম্ভবত দীর্ঘ দীর্ঘ কিন্তু এখানে আমরা যেতে:

f=function(x){a=sapply(1:nchar(x),function(y)substr(tolower(x),y,y));d=c(1,which(!a%in%letters)+1);a[d]=toupper(a[d]);cat(a,sep="")}

কিছুটা নাড়িত এবং ব্যাখ্যা করা হয়েছে:

f <- function(x){
    #Split the string in characters and "lower-case" everything
    a <- sapply(1:nchar(x),function(y)substr(tolower(x),y,y))
    #Select the first character and each character following a 
    #character that doesn't belong to lower case alphabet
    d <- c(1,which(!a%in%letters)+1)
    #Make those ones uppercase.
    a[d] <- toupper(a[d])
    #Output (stdout) while pasting them back together.
    cat(a,sep="")
    }

সম্পাদনা করুন : 116 টি অক্ষর

এখানে মূল চ্যালেঞ্জটি ভেক্টরাইজ করা substr। এখানে আরও কম ভার্বোজ উপায়।

f=function(x){n=1:nchar(x);a=mapply(substr,tolower(x),n,n);d=c(T,!a%in%letters);a[d]=toupper(a[d]);cat(a[n],sep="")}

ইন্ডেন্টযুক্ত:

f <- function(x){
    n <- 1:nchar(x)
    a <- mapply(substr,tolower(x),n,n)
    d <- c(T,!a%in%letters) #This has been simplified as well
    a[d] <- toupper(a[d])
    cat(a[n],sep="") #Because a is now 1 char longer than x, need to subset a
    }

ব্যবহার:

> f("aGeNT ACcEpT/LEngTh-tYPe USeR raNgE.TyPe")
Agent Accept/Length-Type User Range.Type

আপনি কিছু অক্ষর সংরক্ষণ করতে পারেন। যেহেতু aশুধুমাত্র ছোট হাতের অক্ষরগুলির মিশ্রণ, তাই বড় হাতের অক্ষরের সাথে ম্যাচগুলি পরীক্ষা করার দরকার নেই LETTERS
সোভেন হোহেনস্টেইন

@ সোভেনহোহেনস্টেইন সত্যিই ধন্যবাদ!
প্ল্যানাপাস

অন্য এক: আপনি প্রতিস্থাপন করতে পারেন TRUEসঙ্গে T
সোভেন হোহেনস্টেইন

মূলত আমি tolowerপরে ছিল ।
প্ল্যানাপাস

ঠিক আছে, এখানে অন্য এক ;-) আপনি প্রতিস্থাপন করতে পারেন mapply(substr,tolower(x),n,n) সঙ্গে strsplit(tolower(x),"")[[1]]একটি অক্ষর সংরক্ষণ করুন।
সোভেন হোহেনস্টেইন

3

বেফুঞ্জ 98 - 24 45

~\j:'``!3*j' -;:'``b*j:'/`!3*j' +#;:,'/`!jc#@

এটি লেখার ফলে আমার মস্তিষ্কে আঘাত লেগেছে।

এটি এর মধ্য দিয়ে ইনপুট নেয় ~এবং যদি পূর্বের অক্ষরটি পৃথককারীগুলির মধ্যে একটি ছিল (বা যদি পূর্বের কোনও অক্ষর না থাকে), এটি কার্যকর করে

:'``!3*j' -;

এই স্নিপেটটি চরিত্রটি গ্রহণ করে এবং যদি এর asii মান এর চেয়ে বড় বা সমান হয় তবে aএটি এটি থেকে 32 টি বিয়োগ করে, সুতরাং এটি এটিকে বড় হাতের ক্ষেত্রে পরিবর্তন করে। যদি চেয়ে কম হয় a, 3*jসমন্বয় অগ্রাহ্য। এরপরে, এটি পরবর্তী অংশটি এড়িয়ে যায়। এই অংশটি আপার কেস থেকে নিম্নের ক্ষেত্রে পরিবর্তিত হবে (আমি নিশ্চিত যে এটি পরের অংশের সাথে একীভূত হতে পারে; আমি কীভাবে ঠিক তা নিশ্চিত নই):

:'``b*j:'/`!3*j' +#;

অক্ষরটি মুদ্রিত হয় ( ,), তারপরে এই চরিত্রটি একটি সীমানার মধ্যে রয়েছে কিনা তা এটি পরীক্ষা করে:

'/`!

এটি মূলত চরিত্রটিকে আসকি মানের সাথে তুলনা করে /। যদি চরিত্রটি কোনও সীমানা না হয়, কোডটি পুশ করে 12যাতে এটি পরের বারের মতো মূলধন সমন্বয় এড়িয়ে যায়। #শেষ প্রোগ্রামটি এড়িয়ে যায়: @এবং যদি ইনপুটটির শেষে পৌঁছে যায়, প্রোগ্রাম শেষ করে ~কোড এক্সিকিউশনটিকে প্রেরণ করে @


3

রুবি: 60 51 50 47 টি অক্ষর

$_.downcase.chars{|c|$><<$/=$/<?0?c.upcase: c}

নমুনা রান:

bash-4.1$ for line in "${test[@]}"; do printf '%-75s | %s\n' "$line" "$( ruby -ne '$_.downcase.chars{|c|$><<$/=$/<?0?c.upcase: c}' <<< "$line" )"; done
aGeNT ACcEpT/LEngTh-tYPe USeR raNgE.TyPe                                    | Agent Accept/Length-Type User Range.Type
type&AgeNt/CC/COnteNt lEnGth#acCePT/AgeNt.RAnGe-Cc/contEnt/cODe             | Type&Agent/Cc/Content Length#Accept/Agent.Range-Cc/Content/Code
cc/rEspoNCe.lEngtH#tYpE-witH&UsEr/bEgIN&uSer.AGEnT&begIn/aCCEPt/Cc          | Cc/Responce.Length#Type-With&User/Begin&User.Agent&Begin/Accept/Cc
lENgTH#USeR.tYpE/BeGiN&LENGth tYpe/ACCEpt#rANge/codE&AnD-ACCepT/ConTenT     | Length#User.Type/Begin&Length Type/Accept#Range/Code&And-Accept/Content
contENT/ACcEpT                                                              | Content/Accept
BeGin/wITH.tyPE&conTeNt                                                     | Begin/With.Type&Content
Code.cc#User.lenGTh-USer-AND&tyPE TypE&leNgtH.tYPe usER.UseR&with           | Code.Cc#User.Length-User-And&Type Type&Length.Type User.User&With
RaNgE&COnTeNT WITh CoNTENT-TypE tyPe                                        | Range&Content With Content-Type Type
BEgin COdE#uSeR#aGeNt.USeR                                                  | Begin Code#User#Agent.User
TypE LENGth                                                                 | Type Length

1
(পরীক্ষিত নয়) এর l==l.swapcaseমতো কি নয় l<?0? কমপক্ষে এই কাজের জন্য অনুমোদিত ইনপুটটির জন্য।
হাওয়ার্ড

হ্যাঁ. এখন ব্যাটম্যান জোর দিয়েছিলেন যে অন্য কোনও বিভাজনকারীদের প্রত্যাশার দরকার নেই, অবশ্যই এটি খাটো। আপনাকে ধন্যবাদ, হাওয়ার্ড
manatwork

2

সি # - 110

একটি সীমাবদ্ধ-রাষ্ট্র-মেশিন-ভিত্তিক প্রক্রিয়াকরণ:

x.Aggregate(new{b=1>0,r=""},(s,c)=>new{b="-. /&#".Contains(c),r=s.r+(s.b?Char.ToUpper(c):Char.ToLower(c))}).r

(কোথায় x হয় stringপুঁজিতে করার জন্য)

এবং অবশ্যই, যদি আপনি বিরক্তিকর হতে চান (স্পেসিফিকেশন আপডেট হওয়ার পরে), আপনি ব্যবহার করতে পারেন

new CultureInfo(9).TextInfo.ToTitleCase(x)

বা, সমস্ত বিরক্তিকর বয়লারপ্লেট সহ:

class C{static void Main(string[]a){System.Console.WriteLine(new System.Globalization.CultureInfo(9).TextInfo.ToTitleCase(a[0]));}}

না, সি # কোনও স্ক্রিপ্টিং ভাষা না হওয়ায় এটি সংকলন করবে না এবং আপনাকে এটি একটি শ্রেণিতে আবদ্ধ করতে হবে।
পিয়েরে আরলাড

2
বল কে? Microsoft (R) Roslyn C# Compiler version 1.2.20906.1 Loading context from 'CSharpInteractive.rsp'. Type "#help" for more information. > "foobar".Aggregate(new{b=1>0,r=""},(s,c)=>new{b="-. /&#".Contains(c),r=s.r+(s.b?Char.ToUpper(c):Char.ToLower(c))}).r "Foobar"তবে আপনি যদি সত্যিই বোরিং বয়লারপ্লেটের বিষয়ে যত্নশীল হন তবে এর 112 টি অক্ষর যুক্ত করুন।
মোরমেগিল

1
আপনি কেটে নিতে publicএবং string[]aboilerplate, থেকে
Johnbot

ওহ হ্যাঁ, আপনি ঠিকই আছেন public, তবে আমার
তর্কগুলি

2

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

prompt().split(o=q='').map(function(c){o+=(q)?c.toLowerCase():c.toUpperCase(),q=('A'>c)?0:1})
alert(o)

আপনি কোন প্রয়োজন (... )প্রায় তিন শর্ত। এমনকি আরও, আপনি দ্বিতীয় তিন প্রয়োজন হবে না: function(c){o+=q?c.toLowerCase():c.toUpperCase(),q='@'<c}
manatwork

2

চতুর্থ, 135

: s swap ;
: c 1 begin key dup 96 > if s if 32 - then 0 s 
else dup 64 > if s 0= if 32 + then 0 s then else 1 s then then emit again ; c

অনুবাদকৃত আউটপুট যেমন লেখা হয় stdoutতেমন লেখা হয় stdin


1
"তারপরে আবার ছড়িয়ে পড়ুন" ছড়াছড়ি সামনে!
বিড়াল

2

বেফুঞ্জ -98 (29), সি (65)

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

বেফুঞ্জ -98 (29)
#@~:'0` #v_,0>
',++@'% '<   ^
সি (65)
c,d;main(){for(;~(c=getchar());d=c>48)putchar(c<48?c:c&95|32*d);}


1

এক্সেল ভিবিএ -11 অক্ষর

তাত্ক্ষণিক উইন্ডোতে

?[Proper()]

VB স্ক্রিপ্ট

Set xlapp = CreateObject("excel.application")
wscript.echo xlapp.Evaluate("Proper(""BeGin/wITH.tyPE&conTeNt"")"

আপনি ব্যবহার সম্পর্কে কিছু সহায়তা দিতে পারেন? আমি পেয়েছি "সংকলন ত্রুটি: বাহ্যিক নাম সংজ্ঞায়িত করা হয়নি"। (বিকাশকারী ট্যাবে ওয়ার্ড ২০১৩-তে আমি ভিজ্যুয়াল বেসিকটি ক্লিক করেছি, তারপরে আবেদনের জন্য ভিজ্যুয়াল
বেসিকটিতে

@ মান্যাটওয়ার্ক আমার স্পষ্ট করা উচিত ছিল এটি এক্সেলের মধ্যে ছিল। আপনি ওয়ার্ড থেকে এটি করতে পারেন তবে এক্সেলটি স্বয়ংক্রিয় করার জন্য পথটি দীর্ঘ longer
brettdj

1
কুল।
এক্সবি

এক্সেলে সরাসরি কাজ করে: =PROPER(A1)এছাড়াও 11 বাইট
ওয়ার্নিশ

1

awk, 113 103 বাইট

{for(;++i<=split($0,a,"");){s=a[i]
O=O (L?tolower(s):toupper(s))
L=1
if(index("-. /&#",s))L=0}print O}

এটি একক লাইন সামগ্রীর জন্য সূক্ষ্ম কাজ করে তবে মাল্টলাইন ইনপুটটির জন্য একটি দম্পতি ইনসাইট যুক্ত করা দরকার

{O=""
for(L=0;++i<=split($0,a,"");){s=a[i]
O=O (L?tolower(s):toupper(s))
L=1
if(index("-. /&#",s))L=0}print O}

যদি আমরা রেকর্ডটি স্বয়ংক্রিয়ভাবে ক্ষেত্রগুলিতে বিভক্ত হয়ে ওঠার ক্ষেত্রগুলিতে পরিবর্তন করতে পারি তবে এটি চমৎকার হবে তবে আমরা তারপরে আমাদের ক্ষেত্র বিভাজককে হারাব। :(

আমি জানি এটি উত্তরের গল্ফিয়াস্ট নয় এবং এটি একটি পুরানো প্রশ্ন, তবে আমি অনুভব করি যে ডাব্লুকে সিজি-র উত্তর-স্থানটিতে উপস্থাপন করা হয়েছে :)

(কোড পরীক্ষা করার জন্য ধন্যবাদ @ মান্যাটওয়ার্ক, এটি এখন কাজ করা উচিত :) এছাড়াও প্রবাহ পরিবর্তন করেছে তবে কিছুটা ;নিউলাইন দিয়ে প্রতিস্থাপন করে বাইট-কাউন্টটি একই রাখে )


1
তুমি কি নিশ্চিত? কোনও কোডই প্রয়োজনীয় আউটপুট উত্পাদন করে না বলেই মনে হয় না gawk, mawkবা এর সাথেও নয় original-awk। (উবুন্টুতে পরীক্ষিত))
manatwork

এটি gawkএকটি RHEL6 বাক্সে ব্যবহার করে লেখা হয়েছিল , তবে তারপরে একটি উইন্ডোজ বাক্সে প্রতিলিপি। খুব ভাল একটি প্রতিলিপি সমস্যা হতে পারে। আমি যখন একই মেশিনে টেস্টিং এবং পোস্টিং করতে পারি তখন আমি কাজের পরে পরীক্ষার চেষ্টা করব .... আমার মনে হয় আমি সমস্যাটি যাইহোক, দেখতে পাচ্ছি। l=0হওয়া উচিতL=0
রবার্ট বেনসন

আশা করি এটি এখন কাজ করে, @ মান্যাটওয়ার্ক। পরীক্ষার জন্য ধন্যবাদ। :)
রবার্ট বেনসন

1
এখন সঠিকভাবে কাজ করছে বলে মনে হচ্ছে। সব পরীক্ষার বিষয় চেক করা থাকে, কিন্তু এটি একটি বিট কমাতে সম্ভব হবে বলে মনে হয়: {for(l=split($0,a,$0="");i<=l;s=a[++i]){$0=$0(L?toupper(s):tolower(s));L=index("-. /&#",s)}}1
manatwork

আমি আপনার পরিবর্তনের ব্যবহার পছন্দ করি $0এবং আদেশটি 1এড়ানোর জন্য লেবেল printএমন জিনিস যা আমি করার কথা ভাবিনি। ভবিষ্যতের গল্ফিংয়ের জন্য আমাকে এটি মাথায় রাখতে হবে :)
রবার্ট বেনসন

1

পিএইচপি (> v5.4.32) - 25 টি অক্ষর

<?=ucwords($a,'-. /&#')?>

ব্যাখ্যা:

  • ucwords () একটি অন্তর্নির্মিত পিএইচপি ফাংশন

  • প্রথম প্যারামিটারটি $aইনপুট

  • দ্বিতীয় প্যারামিটারটি হ'ল ডিলিমিটার (পরীক্ষার ক্ষেত্রে নন-বর্ণমালা চ্যাটারগুলি পাওয়া যায়)

  • রিটার্ন / প্রতিধ্বনি / মুদ্রণ ব্যবহারের কারণে অনুমান করা হয় <?= ?>

লিঙ্ক:


1
হাই এবং সাইটে আপনাকে স্বাগতম! আমি মনে করি এই মুহূর্তে এটি একটি স্নিপেট যা ডিফল্টরূপে অনুমোদিত নয়, তবে আপনি ব্যবহার করে পুরো প্রোগ্রাম হিসাবে 41 বাইট পেতে পারেন -R: অনলাইনে চেষ্টা করে দেখুন! অথবা 42 টি যুক্তি ব্যবহার করে: এটি অনলাইনে চেষ্টা করুন!
ডোম হেস্টিংস

0

টি-এসকিউএল, 179

DECLARE @T VARCHAR(MAX)='foo',@X VARCHAR(2),@ INT=0WHILE @<LEN(@T)SELECT @X=SUBSTRING(@T,@,2),@+=1,@T=STUFF(@T,@,1,IIF(@X LIKE'[a-Z]_',LOWER(RIGHT(@X,1)),UPPER(RIGHT(@X,1))))PRINT @T

এসকিউএল সার্ভার 2012 এ নির্বাচন করুন নির্বাচন করুন

ইনপুট স্ট্রিং দিয়ে "foo" প্রতিস্থাপন করুন। চর গণনাটি শূন্য দৈর্ঘ্যের স্ট্রিংয়ের জন্য। এই কোডটি একটি সূচক ব্যবহার করে স্ট্রিংটিকে অতিক্রম করে, পূর্বের অক্ষরের উপর ভিত্তি করে সেই অবস্থানে অক্ষরটিকে বড় বা ছোট করে রাখে।


0

জাভাস্ক্রিপ্ট (নোড.জেএস) , 70 বাইট

c=>a=>c.split``.map(b=>a="A">a?b.toUpperCase():b.toLowerCase()).join``

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

আমি নিশ্চিত এটি আরও গল্ফ করা যেতে পারে।

বিঃদ্রঃ :

এর মাধ্যমে ইনপুট নেয় f(string)(), শেষগুলি প্রয়োজনীয় হয় তবে কিছুই করে না।


0

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

এই সমাধানটি কার্য বিধিগুলি সম্পূর্ণরূপে পূরণ করে (এমনকি দ্ব্যর্থক উদাহরণ foo:bar)।

-join($args|% t*y|%{"$_"|%('ToU*r','ToL*r')[+$l];$l=!('# -./&'|% Co*s $_)})

আরও দেখুন builtin ফাংশন ToTitleCase সঙ্গে PowerShell সমাধান @Iszi থেকে।

ব্যাখ্যা করা স্ক্রিপ্ট:

$f = {

-join(
$args|% t*y|%{                   # for each char from input string
    "$_"|%('ToU*r','ToL*r')[+$l] # evaluate ToUpper or ToLower method depend on $l (lower) value
                                 # Note the variable $l is not defined for a first char
                                 # so it evaluates toUpper for the first char 
    $l=!('# -./&'|% Co*s $_)     # golfed form for $l=!'# -./&'.Contains($_) expression
                                 # =0 if the current char is specified separator (toUpper for next char)
}                                # =1 otherwise (toLower for next char)
)                                # finally, join all chars to a result string

}

@(
    ,('foo:bar'                                                                 ,'Foo:bar')
    ,('aGeNT ACcEpT/LEngTh-tYPe USeR raNgE.TyPe'                                ,'Agent Accept/Length-Type User Range.Type')
    ,('type&AgeNt/CC/COnteNt lEnGth#acCePT/AgeNt.RAnGe-Cc/contEnt/cODe'         ,'Type&Agent/Cc/Content Length#Accept/Agent.Range-Cc/Content/Code')
    ,('cc/rEspoNCe.lEngtH#tYpE-witH&UsEr/bEgIN&uSer.AGEnT&begIn/aCCEPt/Cc'      ,'Cc/Responce.Length#Type-With&User/Begin&User.Agent&Begin/Accept/Cc')
    ,('lENgTH#USeR.tYpE/BeGiN&LENGth tYpe/ACCEpt#rANge/codE&AnD-ACCepT/ConTenT' ,'Length#User.Type/Begin&Length Type/Accept#Range/Code&And-Accept/Content')
    ,('contENT/ACcEpT'                                                          ,'Content/Accept')
    ,('BeGin/wITH.tyPE&conTeNt'                                                 ,'Begin/With.Type&Content')
    ,('Code.cc#User.lenGTh-USer-AND&tyPE TypE&leNgtH.tYPe usER.UseR&with'       ,'Code.Cc#User.Length-User-And&Type Type&Length.Type User.User&With')
    ,('RaNgE&COnTeNT WITh CoNTENT-TypE tyPe'                                    ,'Range&Content With Content-Type Type')
    ,('BEgin COdE#uSeR#aGeNt.USeR'                                              ,'Begin Code#User#Agent.User')
    ,('TypE LENGth'                                                             ,'Type Length')
) | % {
    $s,$e = $_
    $r = &$f $s
    "$($r-ceq$e): $r"
}

আউটপুট:

True: Foo:bar
True: Agent Accept/Length-Type User Range.Type
True: Type&Agent/Cc/Content Length#Accept/Agent.Range-Cc/Content/Code
True: Cc/Responce.Length#Type-With&User/Begin&User.Agent&Begin/Accept/Cc
True: Length#User.Type/Begin&Length Type/Accept#Range/Code&And-Accept/Content
True: Content/Accept
True: Begin/With.Type&Content
True: Code.Cc#User.Length-User-And&Type Type&Length.Type User.User&With
True: Range&Content With Content-Type Type
True: Begin Code#User#Agent.User
True: Type Length

0

কিউ বেসিক, 74 বাইট

1c$=LCASE$(INPUT$(1))
IF f=0THEN c$=UCASE$(c$)
f=c$>"@
?c$;
IF""<c$GOTO 1

বাইটগুলি সিপি -৩৩7 এ গণনা করা হয় ;একটি একক বাইট (অক্ষর কোড 20)।

এখানে ইনপুট পদ্ধতিটি কিছুটা অদ্ভুত: অক্ষরগুলি একবারে একটি টাইপ করা হয় এবং প্রদর্শিত হওয়ার আগে তাদের মূলধনটি রূপান্তরিত হয়। সুতরাং আপনি টাইপ করার সময় aGeNTএটি পর্দায় প্রদর্শিত হবে Agent। হিট Enterপ্রোগ্রাম শেষ হয়।


0

পাইথন 3 , 122 বাইট

lambda s:''.join(chr(ord(c)+[[0,0],[0,32],[-32,0]][('@'<c<'[')-('`'<c<'{')]['@'<p<'['or'`'<p<'{'])for c,p in zip(s,'-'+s))

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

দুর্দান্ত স্কোর নয়, তবে কেস চেঞ্জিংয়ের জন্য বিল্টিন স্ট্রিং অপারেশন না করে চেষ্টা করে দেখতে চেয়েছিলাম।


-2

পিএইচপি - 23 টি অক্ষর

এমবি_কভার্ট_কেস ($ ডাব্লু, ২);

এটি কাজের জন্য php_mbstring প্রয়োজন ring


1
আমার 5.3.26 এ mb_convert_case("BeGin/wITH.tyPE&conTeNt", 2);"শুরু করুন / সাথে.প্রকার এবং সামগ্রী" শুরু করুন, "শুরু করুন / সাথে করুন। টাইপ এবং বিষয়বস্তু" নয়।
manatwork
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.