বাড়ির কাজের সময়! আমাকে একটি স্ট্রিংয়ের মধ্যে সর্বনিম্ন এমনকি সংখ্যার সন্ধান করুন


12

স্ট্যাক ওভারফ্লো থেকে আর একটি উজ্জ্বল প্রশ্ন একটি চ্যালেঞ্জে পরিণত হয়েছে !

একটি প্রোগ্রাম লিখুন যে:

  1. স্ট্রিংটিকে ব্যবহারকারী ইনপুট হিসাবে গ্রহণ করে ( পাইপযুক্ত নয় বা কোনও কমান্ড লাইন আর্গুমেন্ট)। ইনপুটটির ডেটা ধরণের অবশ্যই একটি স্ট্রিং হওয়া উচিত, যদি ভাষা ইনপুটটিতে স্বয়ংক্রিয়ভাবে বিভক্ত হয়, তবে এটি অবশ্যই একটি স্ট্রিংয়ে ফেলে দিতে হবে।
  2. প্রথম সর্বনিম্ন এমনকি সংখ্যার সূচক (0 বা 1 ভিত্তিক) সন্ধান করে ।
  3. 2 পূর্ণসংখ্যা , সূচক এবং সর্বনিম্ন এমনকি অঙ্ক মুদ্রণ করে
  4. এমনকি যদি কোনও অঙ্ক না থাকে তবে সূচি হিসাবে ফেরত -1, দ্বিতীয় সংখ্যাটি যে কোনও কিছু হতে পারে।
  5. এই শূন্য উদ্দেশ্যে এমনকি না

বাম আউটপুটটিতে স্ট্রিংয়ের ডানদিকের মানগুলি পরীক্ষা করে দেখুন:

25376  -->  0,2
523726 -->  1,2
583746 -->  4,4
53771  --> -1,0
_4___2 -->  5,2

বিজয়ী: সর্বনিম্ন চরিত্রের গণনা সহ প্রোগ্রাম। কোন বোনাস, কোন জরিমানা।

সম্পাদনা করুন: (স্টিডিন সম্পর্কে) আমি ব্যবহারকারী ইনপুট অংশটি সম্পর্কে স্ক্রু করলাম, মূলত পাইপিং ডেটা নেই এবং কোনও কমান্ড লাইন আর্গুমেন্ট নেই। আপনাকে অবশ্যই প্রোগ্রামের মধ্যেই কোনও প্রকারের ব্যবহারকারী প্রম্পট সরবরাহ করতে হবে।


4
সর্বনিম্ন এমনকি পূর্ণসংখ্যার দুটি সংখ্যা হলে কী হবে? ঠিক আছে, একটি রসিকতা দ্বিগুণ।
ডাঃ বেলিসেরিয়াস

5
স্টাডিনে কী সমস্যা?
জন ডিভোরাক

1
@ জনডভোরাক কারণ স্বেচ্ছাচারী বিধি, তাই কেন।

7
কেন শূন্যের সীমাবদ্ধতা হচ্ছে না? এটি বরং অদ্ভুত বলে মনে হচ্ছে।
ইসজি

3
আপনার ইনপুট প্রয়োজনীয়তাগুলি আসলেই কোনও অর্থবোধ করে না: বেশিরভাগ সিস্টেমে প্রোগ্রামের দ্বারা অনুরোধ জানানো হয় বা না দ্বারা স্ট্যান্ডিনের মাধ্যমে ইনপুট আসে। ইনপুটটি পাইপ করা হয়েছে কি না তা প্রোগ্রামের নিয়ন্ত্রণাধীন নয়। - যদি আপনার লক্ষ্য ব্যবহারকারীদের একটি ইন্টারেক্টিভ প্রোগ্রাম তৈরি করা ছিল, তবে আপনার ইনপুট এবং আউটপুট (বিন্যাস সহ) এবং সংক্ষিপ্ত ইন্টারঅ্যাকশন সম্পর্কে সুনির্দিষ্ট হওয়া উচিত ছিল।
এমটিএনভিউমার্ক

উত্তর:


6

গল্ফস্ক্রিপ্ট, 26 (28) টি অক্ষর

'#{gets}'.'246'&8+$1<.@\?

উদাহরণ:

;'583746'
.'246'&8+$1<.@\?
#44

;'53771'
.'246'&8+$1<.@\?
#8-1

সরাসরি পরীক্ষা: http://golfscript.apphb.com/?c=Oyc1Mzc3MScKLiceNDYnJjgrJDE8LjA9QD8%3D

ব্যাখ্যা:

  • '#{gets}'আই / ও প্রয়োজনীয়তা পূরণের জন্য রুবি থেকে পালানো; STDIN খালি বলে ধরে নেওয়া হয়
  • . ইনপুট ক্লোন করে
  • '246'&8+8সর্বদা বজায় রাখা বাদে ইনপুটটিতে কোন অঙ্কগুলি উপস্থিত রয়েছে তা সন্ধান করে
  • $1< তালিকাটি বাছাই করে, তারপরে প্রথম সংখ্যাটি নেয় তবে স্ট্রিং হিসাবে রাখে
  • .@\?স্ট্যাকটিকে {ডিজিট, ইনপুট, অঙ্ক orders অর্ডার দেয়, তারপরে ইনপুটটিতে অঙ্কটি সন্ধান করে; আমাকে [অ্যারে, অ্যারে] স্বাক্ষরটি লক্ষ্য করার জন্য @ পেটারটেলরকে ধন্যবাদ জানাই ?

আমি এবার স্পেক ব্যাখ্যার সাথে খুব সাহসী হয়েছি; যথা:

  • অনুমানটি আদেশটি দেয় না যে ক্রম অনুসারে পূর্ণসংখ্যাগুলি আউটপুট হয়; :x?xঠিক করতে অন্য @ পিটারের পরামর্শটি ব্যবহার করুন (আমি অস্থায়ী পরিবর্তনগুলি পছন্দ করি না।
  • স্পেকটির জন্য দুটি পূর্ণসংখ্যার মধ্যে কোনও সীমানার প্রয়োজন হয় না; যেহেতু প্রাপ্ত অঙ্কটি সর্বদা একক অঙ্ক, তাই এটি খুব বেশি গুরুত্ব দেয় না। যদি এটি হয় তবে সংযোজন n@(যা স্যুপ পরিবর্তনও করে), n\(যা না) বা ]`(যা আউটপুটটিকে রূপান্তর করে ["8" -1])।

এগুলি পাগল প্রয়োজনীয়তা নয়, তারা স্বেচ্ছাসেবী প্রয়োজনীয়তা: পি

এছাড়াও, অনুমানটির জন্য সূচকটি প্রথমে থাকা দরকার, তবে আপনি যা করেননি তা বলার জন্য আমি গল্ফসক্রিপ্টটি ভালভাবে পড়তে পারি না

@ লেগোস্টোরমাট্রোপ্র এই অনুমানের একমাত্র পয়েন্টে অর্ডারটি উল্লেখ করেছে যে # 4: "যদি কোনও অঙ্কও না থাকে তবে সূচি হিসাবে -1 ফেরত দিন, দ্বিতীয় সংখ্যাটি কিছু হতে পারে"। # 3 অর্ডার নির্দিষ্ট করে না; "নো ডিলিমিটার" সাহসের কথা কি?
জন ডিভোরাক

ওহ স্ন্যাপ, আপনি ঠিক স্যার! আমি আউটপুট দুটি নম্বর উল্লেখ, কিন্তু না। আমি সংশোধন করেছি!

আপনি একটি চরিত্রের .0=@?সাথে .@\?বা :x?xসেভ করতে পারেন এবং অর্ডার নিয়ে সন্দেহ এড়াতে পারেন। 8ফ্যালব্যাক হিসাবে দুর্দান্ত ব্যবহার ।
পিটার টেলর

5

এপিএল (37)

(ডিফল্ট অনুসারে 1-ভিত্তিক, তবে মান্য ⎕IO)

{×⍴m←⍵/⍨⍵∊'2468':z,⍨⍵⍳⍕z←⌊/⍎¨m⋄¯1,0}⍞

ব্যাখ্যা:

  • : ব্যবহারকারী ইনপুট পড়ুন
  • m←⍵/⍨⍵∊'2468': 2468সংরক্ষণ না করে সমস্ত অক্ষর মুছে ফেলুন m
  • ×⍴m: দেখুন কোন আছে কিনা
  • :: যদি তাই:
    • z←⌊/⍎¨m: প্রতিটি অক্ষরকে মূল্যায়ন করুন m, সর্বনিম্ন সংখ্যাটি সন্ধান করুন এবং এতে সঞ্চয় করুন z
    • z,⍨⍵⍳⍕z: এর সূচক আসতে zমধ্যে , দ্বারা অনুসরণ z
  • : যদি না:
    • ¯1,0: ফিরে (-1, 0)

1
বাহ, আমি এপিএলকে হারিয়েছি (জে সমাধানের সাথে নয়, তবে এখনও ...)
জন ডিভোরাক

ব্যাখ্যা? এপিএল তাই স্ব-ব্যাখ্যা করছে ...;)
জার্মানি_গুই

3

পাইথন 3, 69

এখান থেকে ধারণাগুলি একত্রিত ।

s=input();print(([(s.find(x),x)for x in'2468'if x in s]+[(-1,0)])[0]) 

আমি তালিকার চেয়ে স্ট্রিংয়ের ব্যবহার পছন্দ করি এবং এর ফলে (বর্তমানে সরানো) কোটগুলি বাদ পড়ে।
সাইমনটি

@ বুথবি আমি অনুমান করি আপনি খেয়াল করেন নি আমি পাইথন ৩ ব্যবহার করছি। পাইথন 3 ইনপুট () স্ট্রিংটিকে ব্যবহারকারী ইনপুট হিসাবে গ্রহণ করে।
ওয়াসি

@ সিমোনটি back (ব্যাকটিক্স) কেবল উদ্ধৃতি নয়। এটি পাইথন ২ তে repr () এর জন্য অবহেলিত নাম । আমি কেন এ থেকে মুক্তি পাব তা;)
ওয়াসি

@ ওয়াসি হ্যাঁ, আমার ভুল
বুথবি

@ ওয়াসি, হ্যাঁ আপনাকে ধন্যবাদ আমি এটি সম্পর্কে অবগত ছিলাম এবং "এখন মুছে ফেলা" দ্বারা আমি আসলে বলতে চাইছি সম্পূর্ণরূপে ভাষার অংশ হিসাবে সরানো। চিয়ার্স।
সাইমনটি

3

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

x=gets.chars.sort.find{|c|c=~/[2468]/};p x ?$_.index(x):-1,x
  • $_দ্বারা পড়া শেষ ইনপুট রয়েছে gets
  • pinspectযুক্তিগুলিতে কল করে এবং ফলাফলগুলি মুদ্রণ করে।

3

পার্ল - - 94 - 53 টি অক্ষর (বা 48)

index()এর শূন্য-ভিত্তিক পদ্ধতির পরিবর্তে আমরা একটি ব্যবহার করি posএবং শুরু করি ; কোনও সিপিএন নয়। perl -nEএটি দিয়ে চালান এবং এটি ইনপুটটির জন্য অপেক্ষা করবে (এটি এটি থেকেও পেতে পারে STDIN)।

প্রথম ম্যাচ ( //) অপারেশন $_ইনপুট থেকে ডিফল্ট মান ( ) এ কাজ করে , প্রদত্ত sortসমান সংখ্যার সাথে মিলে যায়, ম্যাচগুলিকে অ্যারে রূপায়িত করে এবং তারপরে একটি "স্কেলার তালিকায়" সংরক্ষণ করে ($m)। স্কেলারের প্রসঙ্গে বাছাই করা অ্যারের তালিকার মানটি একটি আইটেম দীর্ঘ এবং এটি সংখ্যার মধ্যে সর্বনিম্ন মিলিত সমান অঙ্কও নিয়ে গঠিত।

সর্বনিম্ন এমনকি ম্যাচিং ডিজিটকে পৃথক করে $mরাখার পরে আমরা দ্বিতীয় ম্যাচের ক্রিয়াকলাপের জন্য ব্যবহার করি যা $mমূল স্ট্রিংয়ের মানটির প্রথম ঘটনাটি খুঁজে পাবে । আমরা এখনও ডিফল্ট মান এখানে ব্যবহার করা হয় $_এবং আমরা বিষয়বস্তু বিরুদ্ধে ম্যাচ সংরক্ষণ করা হয় $mমধ্যে $1(কারণ ()প্রায় $mদ্বিতীয় বিবৃতিতে)। এর পর, posএবং sayবাকি কাজ (এবং অপেক্ষাকৃত কম অক্ষর বিশিষ্ট তুলনায় indexএবং print)।

perl -nE'($m)=sort/[2468]/g;/($m)/g;$1?say pos.",$1":say"-1,0"'
33467
3,4

যদি আউটপুট অর্ডার বা কমাতে কিছু আসে যায় না তবে এই 5 টি অক্ষর আরও সংক্ষিপ্ত করা সম্ভব:

($m)=sort/[2468]/g;/($m)/g;$1?say$1.pos:say"-10"

আমার আগের প্রয়াসে আমি ছুটে এসে একটি ত্রুটি করলাম - আমি কেবল পাইথন এবং রুবিকে মারতে চেয়েছিলাম (তবে ব্যর্থ হয়েছিল) ... দীর্ঘশ্বাস ফেললাম।

বিজয়ী এবং অন্যান্য অংশগ্রহণকারীদের তাদের দুর্দান্ত সমাধানগুলির জন্য অভিনন্দন - বিশেষত perl6:-) এই পদ্ধতির একটি সম্ভাব্য পার্ল ad অভিযোজন ব্যবহার করতে পারে " .comb(মাসাক এট.এল দ্বারা ফ্রেইনোডে প্রস্তাবিত )।

$_=get;my $n=.comb(/<[2468]>/).min;/$n/;say $/.from//-1,",$/"

পাইথন / রুবিকে পেটানোর বিষয়ে এতটাই মনোনিবেশ করা হয়েছিল যে আমি এমন একটি লাইন পোস্ট করেছি যা কোনও সংখ্যা উপস্থিত না থাকলেও কাজ করে না: আগ্রহের সাথে আমার $SHELLইতিহাস থেকে উপরের একটি পূর্ববর্তী সংস্করণ "জয়" এর জন্য ব্যবহার করে। এই কাজের সংস্করণটি হাস্যকরভাবে দীর্ঘ এবং বিব্রতকর। আমার সঠিক সেবা করে: লজ্জা এড়াতে পরে সংক্ষিপ্ত করবে :-(
জি সিটো

পুরানো হ্যাক:if(/[2468]/){for$i(2,4,6,8){if(index($_,$i)>-1){say$i,",",index($_,$i)+1;last}}}else{say"0,-1"}
জি সিটো

2
ভাল, তবে আরও গল্ফিংয়ের জন্য ঘরটি বাকি রয়েছে: ($m)=sort/[2468]/g;/$m/g;say$&?pos.",$&":"-1,0"(47 + 1 বাইট, এএফাইক -nঅতিরিক্ত বাইট ব্যয় করে)।
হাইকো ওবারডিক

বিশেষ দ্রষ্টব্য। posঅফসেটটি ফেরত দেয়। সুতরাং বাস্তবে এটি আপনার উদাহরণে 1-ভিত্তিক সূচক ফিরছে।
draegtun

@ ডিগ্রেগুন ওফসী :-) ধন্যবাদ @Heiko সত্য যে: সুইচ অন্যথায় গণনা করা উচিত perl'র -Mপ্রতি সময় ;-) জয় হবে
জি দ্রুত

3

পার্ল 6, 37 55 60 টি অক্ষর

$_=get;say m/<{~.comb(/<[2468]>/).min}>/.from//-1,',',$/.Int

সম্পাদনা: আমি প্রথমবার প্রশ্নটি ভুল বুঝেছি। এই আপডেটটি সঠিক হওয়া উচিত। এটি ইনপুট ধারণ করে সর্বনিম্ন 2,4,6 বা 8 এর সন্ধান করে এবং তারপরে সেই সর্বনিম্ন সংখ্যার সাথে ইনপুটটির বিপরীতে একটি রেজেক্স ম্যাচ করে। $/.fromম্যাচের অবস্থান পায় এবং ',', $/.Intএটি একটি কমা প্লাস যা নিজেই ম্যাচ হয়, বা যদি পাঠ্যটি মেলে না।

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


1
দুর্ভাগ্যক্রমে এটি প্রথম সমান সংখ্যার (2468) মুদ্রিত হয়েছে এবং সর্বনিম্ন নয় :( এনবি। এছাড়াও $/.fromযখন কিছু পাওয়া যায় না তখন একটি সমস্যা রয়েছে (এটি আমার রাকুডোর পুরাতন সংস্করণে একটি বাগ হতে পারে) Here এখানে আপনার সমাধানের বিভিন্নতা যা কাজ করে ( আমার জন্য!) my$x=get;for 2,4,6,8 ->$n{if $x~~/$n/ {say $/.from,",$/";exit}};say "-1 0"; 75 টি অক্ষরে আসেন তবে আমি নিশ্চিত যে একটি ছোট পার্ল 6 সমাধান তৈরি করা যেতে পারে
ড্র্যাগটুন

@ ডিগ্রেগুন ... আমি গতকাল আমার পার্ল 5 চেষ্টা করে একই ধরণের ত্রুটি করেছি (নীচে দেখুন)। আমার ফিক্স যোগ করেছেন 70 টি চর! সবেমাত্র এটি একটি ~ 50 চরের সংস্করণ দিয়ে আপডেট করেছে - যা মনে হচ্ছে কাজ করে। আমি মনে করি আপনি যদি সংখ্যার মধ্যে সমস্ত অঙ্কগুলি বাছাই করেন তবে আপনি সাজানোর (এখন) প্রথম অঙ্কটি ব্যবহার করে কোনও মিল করতে পারেন এবং নিশ্চিত হন যে আপনার সর্বনিম্ন এবং প্রথমটি রয়েছে। আমি কি সঠিক?
জি সিটো

@ জি.সিটো আমার কাছে ভাল দেখাচ্ছে এবং আপনার উত্তর ইতিমধ্যে +1 করেছেন। আমি কয়েকটি অক্ষর শেভ করার উপায় দেখতে পাচ্ছি তবে আমি যা দেখাব সেগুলি থেকে আরও ভাল করে দেখলাম হাইকো!
draegtun

@ ডিগ্রাটুন ওহ, গীজ, আমি তখন পুরোপুরি প্রশ্নটি ভুল বুঝেছিলাম :( আপনাকে অনেক ধন্যবাদ! আমি এএসএপি আপডেট করব
মওক

@mouq এখানে একটি পদ্ধতির এক perl5 উদাহরণ আমি নীচে পোস্ট হিসাবে একই পদ্ধতির ব্যবহার করছে: my $n; $_="333992";$n=.comb(/<[2468]>/).min;/$n/;say $/.from//-1,",$/"। আমি .combপ্রায় 20 মিনিট আগে শিখেছি এবং আমি ইতিমধ্যে এটি পছন্দ করেছি :-)
জি সিটো

2

জে, 44 টি অক্ষর

echo(;{&i){._1,~(#~(#i)&>)'2468'i.~i=.1!:1]1

এমনকি কোনও অঙ্ক না পাওয়া গেলে ইনপুটটির শেষ অক্ষরটিকে আউটপুট করে

উদাহরণ:

   echo(;{&i){._1,~(#~(#i)&>)'2468'i.~i=.1!:1]1
523726
+-+-+
|1|2|
+-+-+
   echo(;{&i){._1,~(#~(#i)&>)'2468'i.~i=.1!:1]1
53771
+--+-+
|_1|1|
+--+-+

ব্যাখ্যা:

  • echo ... i=.1!:1]1ইনপুট / আউটপুট। আমি যতটা চাই তার চেয়ে দীর্ঘ পথ। ইনপুট iপাশাপাশি স্ট্যাশ করা হয়।
  • '2468'i.~ ইনপুটতে প্রতিটি এমনকি অঙ্কের প্রথম উপস্থিতি খুঁজে বের করে, অঙ্কটি পাওয়া না গেলে ইনপুট দৈর্ঘ্য প্রদান করে
  • (#~(#i)&>)"এর চেয়ে বড় ইনপুট দৈর্ঘ্যের দ্বারা নির্বাচন করুন" পড়ে; অন্য কথায়, সেই সূচকগুলি নির্বাচন করুন যা ইনপুটটিতে নির্দেশ করে। আমি যতটা চাই তার চেয়ে দীর্ঘ পথ।
  • _1,~পিছনে -1 সংযোজন। ইন্ডস্কোর হ'ল নেতিবাচক মানগুলির প্রতিনিধিত্ব করার জে এর উপায়।
  • {. প্রথম উপাদান নির্বাচন করে
  • (;{&i)দুটি বাক্সে সেই অবস্থানের ইনপুট চরিত্রের সাথে এটি যুক্ত করে; যেহেতু আমরা একটি সংখ্যার সাথে একটি চরিত্রের সাথে সংমিশ্রণ করছি, তাই নন-বক্সিং কনটেনটেশন ( ,) এটি করবে না। যদি আনবাক্সড ডিসপ্লেটি পছন্দসই হয় তবে ":দুটি অক্ষরের ব্যয়ে সূচকটি প্রথমে ( ) বিন্যাস করা দরকার ।

2

পাইথন 2.7 - 76

একটি রেফারেন্স উত্তর আমি মারধর করার সম্পূর্ণ প্রত্যাশা করি। তবে লোকেদের শুরু করতে:

s=raw_input()
print[(s.index(`e`),e)for e in[2,4,6,8]if`e`in s][:1]or(-1,0)

3
আপনি পরিবর্তন করে একটি অক্ষর বন্ধ শেভ করতে indexকরতে find; আপনার কাছে পরিবর্তন করতে পারেন [2,4,6,8]থেকে 2,4,6,8(সামনে স্থান সহ)।
জাস্টিন

4
সংক্ষিপ্ত:print[(s.find(`e`),e)for e in 2,4,6,8if`e`in s+'8'][0]
grc

4
আমার মনে হয় আপনি নিজের নিয়ম ভঙ্গ করেছেন ... যেহেতু কাঁচা_পিন্ড স্টিডিন নয়?
ক্রંચার

1
print[(s.index(c),c)for c in'2468'if c in s][0]or(-1,0)
এরিক


2

পাওয়ারশেল, 76 73 71

$s=read-host;2,4,6,8|%{if($i=$s.indexof("$_")+1){"$i,$_";break}};"-1,0"
  • $s=read-host ব্যবহারকারী ইনপুট মধ্যে সঞ্চয় $s
  • 2,4,6,8|%{...}{}2,4,6 এবং 8 এর জন্য কী রয়েছে তা চালায়
  • $i=$s.indexof("$_")+1 অঙ্কটি পাওয়া যায় না বা যদি $iকোনও অঙ্কের 1-ভিত্তিক সূচককে সেট করে$s0
  • if( $i=... ){...} শর্তটি সত্য হবে যখন $iনা0
  • "$i,$_";break সূচক এবং অঙ্কটি আউটপুট করে এবং কার্যকর করা বন্ধ করে দেয়
  • "-1,0" অন্যথায় ফলাফল -1,0

এটি সঠিক সূচকে আউটপুট দেয় না। পাওয়ারশেলের ক্ষেত্রে যেমন প্রশ্নের জন্য দেওয়া পরীক্ষার ক্ষেত্রে সূচকগুলি শূন্য থেকে শুরু হয়।
ইসজি

1
বিধি # 2 বলছে সূচক 0 বা 1 ভিত্তিক হতে পারে।
ডানকো দুর্বিć

উহু. যে স্পট না। যেভাবেই হোক, এখানে একটি শূন্য-ভিত্তিক বৈকল্পিক যা কেবলমাত্র পাঁচটি অক্ষর দীর্ঘ। $s=read-host;(2,4,6,8)|%{if(($i=$s.indexof("$_"))-gt-1){"$i,$_";break}};'-1,0'
ইসজি

এছাড়াও, আমি নিশ্চিত যে আশেপাশের প্রথম বন্ধনী 2,4,6,8অপ্রয়োজনীয়।
ইসজি

যদি শর্তটি পরিবর্তন করে তবে শূন্য-ভিত্তিক ভেরিয়েন্টটি 2 টি অক্ষরকে আরও দীর্ঘ করা যায়:if(1+($i=$s.indexof("$_")))
ডানকো ডুর্বি

2

সি ++ 11, 173 (দুটি নতুন লাইনের চরগুলি সহ)

সংক্ষেপিত সংস্করণটি এখানে:

#include<iostream> 
#include<string> 
int main(){std::string s;std::cin>>s;for(char c:"2468")for(char&k:s)if(k==c){std::cout<<(&k-&s[0])<<','<<c;return 0;}std::cout<<"-1,8";}

এখানে পাঠযোগ্য সংস্করণ:

#include<iostream>
#include<string>
int main() {
    std::string s; // auto s = ""s; (since C++14: -3 characters)
    std::cin >> s;
    for (char c : "2468")
        for (char& k : s)
            if (k == c) {
                std::cout << (&k - &s[0]) << ',' << c;
                return 0;
            }
    std::cout << "-1,8";
}

এখানে একটি পুরানো সংস্করণ:

সি ++ 11, 175 (দুটি নতুন লাইনের চরগুলি সহ)

সংক্ষেপিত সংস্করণটি এখানে:

#include<iostream>
#include<string>
int main(){std::string s;std::cin>>s;for(char c:"2468"){int i=s.find(c);if(i<s.size()){std::cout<<i<<','<<c;return 0;}}std::cout<<"-1,8";}

এখানে পাঠযোগ্য সংস্করণ:

#include<iostream>
#include<string>
int main() {
    std::string s;
    std::cin >> s;
    for (char c : "2468") {
        int i = s.find(c);
        if (i < s.size()) {
            std::cout << i << ',' << c; 
            return 0;
        }
    }
    std::cout << "-1,8";
}

ব্যবহার করে দেখুন #define o std::cout<<। আমি মনে করি এটি আপনার কোডটিকে 1 টি অক্ষর দ্বারা ছাঁটাই করে।

@ ব্যবহারকারী2509848, না, এটি আসলে 2 টি অক্ষরের বেশি। তবে যাইহোক ধন্যবাদ :)
জুতো

k==c?std::cout<<(...),throw 0:0;- শর্তসাপেক্ষ অপারেটর প্রতিস্থাপন করতে পারে if, যখন আপনার সমস্ত প্রয়োজনের মত প্রকাশ হয়। throwএটি একটি অভিব্যক্তি এবং এর চেয়ে ছোট একটি চরিত্রও return
এমসাল্টাররা


1

সি # - 124

আমি পার্টিতে কিছুটা দেরি করেছি

void Main(string[]a){var x=a[0].Where(w=>char.IsDigit(w));var y=x.Min();Console.Write(y%2==0?a[0].IndexOf(y)+","+y:"-1,0");}

0

হাস্কেল, 79 টি অক্ষর

s&d=filter((==d).snd)$zip[-1..]$'0':s
main=interact$show.head.("24680">>=).(&)

এটি আউটপুট বিন্যাসের সাথে সামান্য দ্রুত এবং looseিলে চলে:

& echo 523726 | runhaskell 16083-LowEven.hs 
(1,'2')
& echo 583746 | runhaskell 16083-LowEven.hs 
(4,'4')
& echo 53771 | runhaskell 16083-LowEven.hs 
(-1,'0')
& echo _4___2 | runhaskell 16083-LowEven.hs 
(5,'2')
& echo 25376 | runhaskell 16083-LowEven.hs 
(0,'2')

0

পাওয়ারশেল: 145 103

মূল
জিজ্ঞাসাকারী থেকে মন্তব্য প্রতি ত্রুটি কোয়েলচ মুছে ফেলা পরিবর্তন

কোড:

"$([array]::IndexOf(($s=(read-host)-split''|?{$_}),($x=$s|?{$_%2-eq0}|?{$_-gt0}|sort|select -f 1))),$x"

walkthrough:

"... "উদ্ধৃতিগুলির মধ্যে থাকা সমস্ত কিছুই আউটপুটে অন্তর্ভুক্ত করা হবে।

$(... )প্রথম বন্ধনীগুলির মধ্যে থাকা সমস্ত কিছুকে একটি আদেশ হিসাবে বিবেচনা করা হবে এবং সেই কোডের আউটপুট কমান্ডগুলির পরিবর্তে তাদেরকে অন্তর্ভুক্ত করা হবে।

[array]::IndexOf(... )এটি অ্যারের সাথে কোনও উপাদানের সূচক পেতে ব্যবহৃত হয়। এর প্রথম প্যারামিটারটি অনুসন্ধান করা অ্যারে অবজেক্ট। দ্বিতীয় প্যারামিটারটি খুঁজে পাওয়া বস্তু। এটি কেবল প্রথম মিলের উপাদানটির সূচককে আউটপুট করে। আমি IndexOfসরাসরি কোনও পদ্ধতির বিরুদ্ধে সরাসরি ব্যবহার করার চেষ্টা করেছি $s(উদাহরণস্বরূপ $s.IndexOf($x):, তবে এটি এখনও ব্যর্থ হয়েছে যে কারণে আমি এখনও বের করতে পারি না - এটি দাবি করে যে পদ্ধতিটি সেই বস্তুর উপরে নেই।

(... প্রথম )বন্ধনের মধ্যে এক্সপ্রেশন প্রথম প্যারামিটার হবে IndexOf

$s= input গুলি ব্যবহারকারীর ইনপুট সংরক্ষণের জন্য একটি পরিবর্তনশীল হবে।

(read-host)-split'' ব্যবহারকারীর ইনপুট পায় এবং এটিকে অক্ষরের অ্যারেতে বিভক্ত করে `

|?{$_}দ্বারা উত্পন্ন অতিরিক্ত খালি অ্যারে উপাদানগুলি ফিল্টার করে -split''

,(... প্রথম )বন্ধনের মধ্যে এক্সপ্রেশন দ্বিতীয় প্যারামিটার হবে IndexOf

$x= input গুলি ব্যবহারকারীর ইনপুট থেকে সর্বনিম্ন এমনকি অঙ্ক সংরক্ষণ করার জন্য একটি ভেরিয়েবল হবে।

$s|?{$_%2-eq0} Numbers গুলি থেকে সমান সংখ্যা টানুন।

|?{$_-gt0} শূন্য অবৈধ।

|sort বাকী অবজেক্টগুলি বাছাই করে, ডিফল্ট ক্রমটি আরোহণ is

|select -f 1 প্রথম অবজেক্টটি চয়ন করে, যা এখন সবচেয়ে নিম্নতম এমনকি অঙ্কের হবে।

,$xউপরের কোডটি আমাদের সর্বনিম্ন এমনকি অঙ্কের সূচককে আউটপুট দেবে। এটি একটি কমা যোগ করে এবং তারপরে অঙ্কটি নিজেই আউটপুট করে।

মন্তব্য:

এটি সম্ভবত নিয়ম 4 প্রসারিত হয় সামান্য বিট। এমনকি যদি কোনও অঙ্ক না থাকে তবে আউটপুটটিতে দ্বিতীয় নম্বর অন্তর্ভুক্ত হবে না।

এছাড়াও, যদি ইনপুটটিতে অ-সংখ্যাসূচক উপাদান থাকে তবে এটি কিছু অ-সমাপ্তি ত্রুটি ফেলে দেবে। স্ক্রিপ্টটি এখনও চলবে এবং সঠিক আউটপুট দেবে, তবে আপনি এটি চালনার আগে সেট $ErrorActionPreferenceকরতে চান 'SilentlyContinue'


@ ড্যাঙ্কোডুর্বিć এখন আপনি আমাকে শান্তভাবে পরাজিত করেছেন, আপনি কেন আমাকে $s.IndexOfএখানে ব্যবহার করতে পারছেন না তা বুঝতে সাহায্য করতে আপনি কি আপত্তি করবেন ? এটি আমাকে ত্রুটি দিচ্ছিল যে পদ্ধতিটি সেই বস্তুর জন্য উপস্থিত ছিল না, যদিও $s|gmএটি বলেছিল। এটি এখন আমি যে সিস্টেমে চলেছি তাতে এটি কাজ করে তবে আমি আজকের আগে এটি করার চেষ্টা করেছিলাম না। এটি একটি সংস্করণ সামঞ্জস্য সমস্যা? আগের সিস্টেমটি PSv2 ছিল, বর্তমান PSv4।
ইসজি

তোমার $sহয় string[], এবং $s.indexofকারণ কাজ করে ...[System.String[]] doesn't contain a method named 'indexOf', যা মনে যুক্তিসঙ্গত (আমি দ্রষ্টব্য 2.0 চলমান করছি)। $s|gmএর সদস্যদের ফিরিয়ে দেয় System.String, না System.String[]। আমি কেন নিশ্চিত তা জানি না।
ডানকো দুর্বিć

0

vb.net (108c)

Sub Main()
t=ReadLine()                          '12c
For Each c In "2468"                  '20c  
i=t.IndexOf(c)                        '14c
If i>=0 Then Exit For                 '21c
Next                                  ' 4c
WriteLine("{0},{1}",i,If(i<0,0,t(i))) '37c
End Sub

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


0

লিনিকিউ ব্যবহার করে ভিবি নেট (193 সি)

এইটি প্রাথমিকভাবে একটি লিনকিউ কোয়েরি ব্যবহার করছে।

Dim r = From d In "2468" Group Join q In ReadLine.Select(Function(c, p) New With {.c = c, .i = p})
                              On d Equals q.c Into g = Group
                                        Skip While g.Count = 0 ' 138c
WriteLine(If(r.Any,r(0).g(0).i&","&r(0).g(0).c,"-1,0"))        '  55c

0

গল্ফ-বেসিক 84, 91 টি অক্ষর

:L1/L1_L2i`L1:fpart(L1,2)2_L1:SortA(L1)@cumSum(L1)=length(L1):Thend`-1#d`cumSum(L1):Endd`L1
  • নিশ্চিত করুন যে ইনপুটটিতে কিছু নেই 0(এটি এমনকি নয়, কে বলেছিল যে এটি বেআইনি হতে হবে?)
  • এল 1 (তালিকা 1) এ ইনপুট পান
  • প্রতিটি মানের জন্য 2 এর লুপ সন্ধানের মডুলাস us
  • সবচেয়ে ছোট থেকে সর্বোচ্চে এল 1 বাছাই করুন
  • সূচক (যে কোনও -1 বা সংশ্লেষফল) এবং সর্বনিম্ন সংখ্যা প্রদর্শন করুন

0

বোর্ন শেল (শে), 88 টি অক্ষর

(echo 88;sed 's/./\n&/g')|nl -v-1|awk '{print $2,$1}'|sed '/^[^2468]/d'|sort -n|head -n1

আমি ভেবেছিলাম মজাদার জন্য স্ট্রিং-প্রসেসিংয়ের কাজ করব। প্রযুক্তিগতভাবে এটি স্টিডিনের কাছ থেকে পড়ে, তবে আপনি যদি এটি ইন্টারেক্টিভভাবে চালনা করেন তবে এটি ব্যবহারকারীকে ইনপুট দেওয়ার জন্য অনুরোধ করবে যেহেতু কীবোর্ডটি ডিফল্ট স্টিডিন স্ট্রিম। লাইনগুলিতে ইনপুট বিভক্ত করতে, তাদের সংখ্যা ( nlঅজানা ইউটিলিটি ব্যবহার করে ), মাপদণ্ডের সাথে মানিয়ে যাওয়া লাইনগুলি ফিল্টার আউট, তাদেরকে সাজান এবং সর্বনিম্ন-অঙ্কের আউটপুট তৈরি করতে বেসিক শেল কমান্ডগুলি ব্যবহার করে । 88 -1এমনকি অঙ্ক না পাওয়া গেলেও মুদ্রণ করে ।


0

সি ++ - 223 221 চরিত্র:

#include<iostream>
#include<string>using namespace std;
int main(){int s=9;int p=-1;string x;cout<<"Enter characters: ";cin>>x;for(int i=0;i<x.length();i++){int n=x[i]-48;if(n%2==0&n<s){s=n;p=i;}}cout<<p<<", "<<s;return 0;}

পঠনযোগ্য সংস্করণ:

#include<iostream>
#include<string>
using namespace std;

int main() {
    int s = 9;
    int p= - 1;
    string x;

    cout << "Enter characters: ";
    cin >> x;

    for (int i = 0; i < x.length(); i++) {
        int n = x[i] - 48;

        if (n % 2 == 0 & n < s) {
            s = n;
            p = i;
        }
    }

    cout << p << ", " << s;

    return 0;
}

এটি দীর্ঘ, তবে জাভার মতো খারাপ নয়।


এটি আসলে 221 + 2 (নতুন লাইন অক্ষর) অন্যথায় এটি সংকলন করবে না।
জুতো

উহু. শব্দটি কেবল 221 সনাক্ত করেছে, আমি এটি পরিবর্তন করব।

0

জাভাস্ক্রিপ্ট 93 টি অক্ষর

b=prompt();((r=b.match(/[2468]/g)||[-1]).sort(function(a,b){return a-b})[0])+","+b.indexOf(r)

সমস্ত ইভেন্ট নম্বর পান, অ্যারে বাছাই করুন এবং প্রথম সংখ্যা মুদ্রণ করুন।


0

গণিত, 157 টি অক্ষর

f = Row@{If[(x = Min@#) == Infinity, -1, Position[#, x][[1, 1]]],
      ",", x} &[IntegerDigits@ToExpression@StringReplace[#,
       {"0" -> "1", x_?DigitQ :> x, _ -> "1"}] /. _?OddQ -> Infinity] &

inputs = {"25376", "523726", "583746", "53771", "_4___2"}

f /@ inputs // Column

1,2

2,2

5,4

-1, ∞

6,2


0

জুলিয়া, 84

julia> f(a)=(for i=2:2:8;(k=search(a,'0'+i))==0||return(k,i);end;(-1,0))
julia> f(readline(STDIN))
583746
(5,4)
julia> f(readline(STDIN))
_4___2
(6,2)

গল্ফিংয়ের জন্য ইনপুট পাওয়ার জন্য জুলিয়াকে সত্যই ছোট একটি উপায় প্রয়োজন। আমি সংজ্ঞা fএবং একটি কল গণনা f। একটি ভিত্তিক সূচক কেন উত্তরগুলির উদাহরণগুলির চেয়ে পৃথক।


0

জাভাস্ক্রিপ্ট - 53 টি অক্ষর

for(y=prompt(x=0);x<8&&(i=y.indexOf(x+=2))<0;);x+''+i

প্রম্পট এবং আউটপুট থেকে ইনপুট পড়ে (কনসোলে) সর্বনিম্ন এমনকি অক্ষর তখন (একটি সীমানা ছাড়াই) character অক্ষরের প্রথম সূচক; যদি কোনও শূন্য-সমান অক্ষর না থাকে তবে এটি ফলাফল হয় 8-1


0

সি, 110 টি অক্ষর

i,f,r,c,m=9;main(){while(r=getchar()>31){c=r-48;i++;if(c>=0&&~c&1&&c<m)m=c,f=i;}printf("%i,%i",m>8?-1:f-1,m);}

ungolfed:

i,f,r,c,m=9;
main(){
  while(r=getchar()>31){
    c=r-48;
    i++;
    if(c>=0&&~c&1&&c<m) m=c,f=i;
  }
  printf("%i,%i",m>8?-1:f-1,m);
}

0

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

a=prompt(),b=[-1,9];for(i in a)if(+a[i]%2==0&&+a[i]<b[1])b=[+i,+a[i]]

মানটি পড়ছে, প্রতিটি চরিত্রের মাধ্যমে পুনরাবৃত্তি করে, যদি সংখ্যা উপস্থাপনা মোড 2 সমান 0 হয় এবং সংখ্যাটি ইতিমধ্যে সঞ্চিত যা কম থাকে bতবে মানগুলি প্রতিস্থাপন করুনb




0

জাভাস্ক্রিপ্ট / jQuery 149

Golfed

$(function(){
var i=prompt(),k=-1,n=0,c,e="2468";
while(n<i.length){c=i.charAt(n);k=e.indexOf(c);if(k>=0){break;}n++;}$('#d').append(k+","+n);
});

সম্পূর্ণ উত্স

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<div id="d"></div>
<script type="text/javascript">
$(function(){
var i=prompt();
var k=-1;
var n=0;
var c;
var e="2468";
while(n<i.length){
c=i.charAt(n);
k=e.indexOf(c);
if(k>=0){
break;
}
n++;
}
$('#d').append(k+","+n);
});
</script>
</body>
</html>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.